Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Πέρασμα ημερομηνιών 10/1/1005 και κάτω στον SQL Server 2005

Îåêßíçóå áðü ôï ìÝëïò dtakis. Τελευταία δημοσίευση από το μέλος dtakis στις 09-02-2007, 13:35. Υπάρχουν 11 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  24-01-2007, 10:01 23937

    Πέρασμα ημερομηνιών 10/1/1005 και κάτω στον SQL Server 2005

    Γνωρίζω ότι ο SQL Server έχει μια αρχική ημερομηνία που αρχίζει την μέτρηση των ημερομηνιών για πεδία τύπου datetime που αρχίζει από τον 18 αιώνα! Πως μπορούμε να περάσουμε ημερομηνίες πριν από αυτή την αρχή και να μην μας επιστρέφει λάθος (πέρα από τη λύση να περάσουμε τις ημερομηνίες σε πεδία κειμένου.

    Ευχαριστώ εκ των προτέρων!

  •  24-01-2007, 10:52 23941 σε απάντηση της 23937

    Απ: Πέρασμα ημερομηνιών 10/1/1005 και κάτω στον SQL Server 2005

    Η άχρηστη πληροφορία της ημέρας είναι ότι η συγκεκριμένη ημερομηνία οφείλεται στην αλλαγή στο νέο ημερολόγιο. Η συγκεκριμένη απόφαση πάρθηκε γιατί η μετάβαση στο νέο έγινε με διαφορετικό τρόπο σε αρκετές χώρες.

    Κάποιες κάνανε τη μετάβαση άμεσα. Κάποιες άλλες καλύψανε τη διαφορά σταδιακά μέσα σε κάποια χρόνια. Αποτέλεσμα ήτανε για ένα διάστημα ανάλογα με το που βρισκόσουνα, η ημερομηνία ήτανε διαφορετική.

    Η πρώτη ημερομηνία στο datetime είναι η πρώτη (θεωρητικά) που ταυτιζότανε για όλους.

    Και μετά το ευχάριστο διάλειμα στο θέμα, δεν νομίζω ότι μπορείς να κάνεις κάτι με το datetime.

    Αυτό που μπορείς να κάνεις "μαμουνίστικα" είναι να κρατάς σε ένα ξεχωριστό int πεδίο τη χρονολογία. Και με ένα απλό business rule να μετατρέπεις μετά στο Object σου το preperty στη σωστή. Το κακό είναι ότι έτσι ίσως έχεις κάποιο πρόβλημα με τις μέρες του Φεβρουαρίου αν το έτος που θέλεις είναι δύσεκτο, αλλά το datetime που έχεις με τη "λάθος" χρονολογία είναι μη δύσεκτο (ή το αντίστροφο).
    Simple Photography
  •  24-01-2007, 10:55 23942 σε απάντηση της 23937

    Απ: Πέρασμα ημερομηνιών 10/1/1005 και κάτω στον SQL Server 2005

    Στον 2005 μπορείς να φτιάξεις ένα CLR User Defined Type που να υποστηρίζει ημερομηνίες από 1/1/1. Δες εδώ http://weblogs.sqlteam.com/mladenp/archive/2006/12/16/52754.aspx για περισσότερες πληροφορίες. Ωστόσο υπάρχουν αρκετοί περιορισμοί καθώς από το 1753 και προηγουμένως αλλάζουν ημερολόγια, κλπ. οπότε δεν μπορείς να κάνεις αξιόπιστες πράξεις μεταξύ ημερομηνιών πριν και μετά το 1753.


    Vir prudens non contra ventum mingit
  •  24-01-2007, 10:57 23943 σε απάντηση της 23941

    Απ: Πέρασμα ημερομηνιών 10/1/1005 και κάτω στον SQL Server 2005

    Ναι, κάπου εδώ τα είχα διαβάσει αυτά με την μετάβαση στο νέο ημερολόγιο και πόσο διαφορετικά έγινε στη Σουηδία. Δεν καταλαβαίνω τι γίνεται στην περίπτωση που κάποιοι αρχαιολόγοι λ.χ. θέλουν να κάνουν μια βάση με τα χρονολογικά τους ευρήματα κτλ. Τι κάνουν σε αυτή την περίπτωση; Πάλι αλχημείες;

  •  24-01-2007, 11:05 23944 σε απάντηση της 23943

    Απ: Πέρασμα ημερομηνιών 10/1/1005 και κάτω στον SQL Server 2005

    Το καλύτερο που θα μπορούσανε να κάνουνε είναι φυσικά να λάβουνε υπόψιν τα διαφορετικά ημερολόγια ώστε να μπορούνε να συγκρίνουνε χρονικά τα γεγονότα.

    Πχ το τάδε γεγονός έγινε τότε σύμφωνα με το ημερολόγια που ίσχυε εκεί τότε, το οποίο είχε τόση διαφορά τότε από το Γρηγοριανό και τόση από αυτό των Αζτέκων εκείνης της περιόδου, αλλά τόση με αυτό των Αζτέκων της δυναστείας των #@%$#%.

    Γενικά είναι μεγάλη η ανάλυση που μπορεί να γίνει.

    Να ρωτήσω εσύ που θα το χρησιμοποιήσεις?
    Simple Photography
  •  24-01-2007, 12:06 23950 σε απάντηση της 23944

    Απ: Πέρασμα ημερομηνιών 10/1/1005 και κάτω στον SQL Server 2005

    Σεισμοί!

  •  24-01-2007, 16:13 23970 σε απάντηση της 23937

    Απ: Πέρασμα ημερομηνιών 10/1/1005 και κάτω στον SQL Server 2005

    Και αν θέλω να περάσω ημερομηνίες προ Χριστού;;;; Βάζω πρόσημο; :)
  •  24-01-2007, 16:26 23972 σε απάντηση της 23970

    Απ: Πέρασμα ημερομηνιών 10/1/1005 και κάτω στον SQL Server 2005

    lol

    Δυστυχώς εκεί δεν το υποστηρίζει ούτε το .ΝΕΤ...

    Νέο πεδίο MX/ΠΧ και χαμός μετά πάλι με τις λάθος ημέρες εβδομάδας και δίσεκτα... lol


    Simple Photography
  •  24-01-2007, 16:32 23973 σε απάντηση της 23937

    Απ: Πέρασμα ημερομηνιών 10/1/1005 και κάτω στον SQL Server 2005

    Αντί για SQL Server μπορείς να χρησιμοποιήσεις Oracle XE. Η Oracle στον τύπο date υποστηρίζει ημερομηνίες από 01/01/4712 π.Χ.  έως 31/12/9999 μ.Χ.

    Νατάσα Μανουσοπούλου
  •  25-01-2007, 09:20 23999 σε απάντηση της 23937

    Απ: Πέρασμα ημερομηνιών 10/1/1005 και κάτω στον SQL Server 2005

    Σε ποιό ημερολόγιο?

    Ίσως μία καλύτερη λύση, τόσο σε Oracle όσο και σε SQL θα ήταν να κρατάς σε ξεχωριστά πεδία έτος, μήνα, ημέρα και ημερολόγιο, για δύο ημερολόγια. Ένα της εφαρμογής και ένα αυτό που χρησιμοποιήθηκε για την καταγραφή του γεγονότος. Δεν μιλάμε μόνο για παλαιό και νέο ημερολόγιο, αλλά για Ιουλιανό, Αραβικό, Ινδικό, παραλλαγές, π.χ. το ελληνικό δεν είναι ακριβώς το Γρηγοριανό αλλά έχει κάποιες μικρές διαφοροποιήσεις.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  25-01-2007, 11:07 24006 σε απάντηση της 23950

    Απ: Πέρασμα ημερομηνιών 10/1/1005 και κάτω στον SQL Server 2005

     dtakis wrote:

    Σεισμοί!

    Σε εφαρμογή με σεισμούς σε ενδιαφέρει να κάνεις πράξεις με τις ημερομηνίες; να δεις τι μέρα ήταν και άλλα τέτοια;

    Δεν σου αρκεί να κρατάς το έτος, το μήνα και την ημερα του μήνα σε ακεραίους;

  •  09-02-2007, 13:35 24737 σε απάντηση της 24006

    Απ: Πέρασμα ημερομηνιών 10/1/1005 και κάτω στον SQL Server 2005

    Ναι δεν έχω τέτοιο πρόβλημα απαραίτητα αλλά ποτέ δεν ξέρεις τι θα σου χρειαστεί;
    Αν π.χ. γινόταν μια έρευνα για έναν σεισμό στην αρχαία εποχή όπως ο Βεζούβιος θα είχε νόημα για την ημέρα που έγινε με βάση αν η συγκεκριμένη μέρα είχε κάτι το ξεχωριστό (αργία για τους Ρωμαίους κτλ).
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems