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

 

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

Αποθήκευση ώρας σε πεδίο βάσης δεδομένων

Îåêßíçóå áðü ôï ìÝëïò Dimitris Papadimitriou. Τελευταία δημοσίευση από το μέλος Mitsaras στις 04-12-2006, 16:54. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  04-12-2006, 11:46 21608

    Αποθήκευση ώρας σε πεδίο βάσης δεδομένων

    Πως θα αποθηκεύατε την πληροφορία ώρας σε μια βάση δεδομένων; Μόνο την ώρα, όχι ολόκληρη ημερομηνία. π.χ. 13:18 ή 08:13.
    Ορίστε μερικές πιθανές λύσεις:
    1. char(5) π.χ. 13:18
    2. char(3) π.χ. 1318
    3. datetime, βάζοντας πάντα 1/1/1900 στο τμήμα της ημερομηνίας
    4. int αποθηκεύοντας τα ticks
    Φαντάζομαι ότι το σκεπτικό είναι ότι τα 2 πρώτα βολεύουν περισσότερο στην εμφάνιση, ενώ τα 2 τελευταία βολεύουν περισσότερο αν χρειάζονται υπολογισμοί, τόσο σε επίπεδο βάσης (π.χ. stored procedures), όσο και εκτός βάσης (π.χ. applications server, UI).
    Το 3 ίσως βολεύει και σε εμφάνιση και σε "άνεση" (υπολογισμοί)!

    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  04-12-2006, 11:58 21610 σε απάντηση της 21608

    Απ: Αποθήκευση ώρας σε πεδίο βάσης δεδομένων

    σε datetime/smalldatetime, δεν έχω κανένα λόγο να διαλέξω τον τύπο char αφού μπορώ να πάρω πολύ εύκολα τη μορφή αυτή ή οποια άλλη θέλω
  •  04-12-2006, 12:14 21613 σε απάντηση της 21608

    Απ: Αποθήκευση ώρας σε πεδίο βάσης δεδομένων

    Σίγουρα όχι τα 2 πρώτα. Είναι ιδιαίτερα δύσκολο το να κάνεις υπολογισμούς (θα πρέπει νε μπλέξεις typecasting). Το 4ο είναι πιο εφικτή λύση (ειδικά σε συνεργασία με το DateTime type του .net), αλλά και πάλι, ως λύση ωχριά στο 3ο (don't reinvent the wheel).
    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  04-12-2006, 13:17 21615 σε απάντηση της 21613

    Απ: Αποθήκευση ώρας σε πεδίο βάσης δεδομένων

    Και δεν είναι ανάγκη να βάζεις πάντοτε το 1/1/1900. Αν σου χρειάζεται το time part, χρησιμοποιείς μόνο αυτό...
    Vir prudens non contra ventum mingit
  •  04-12-2006, 14:27 21626 σε απάντηση της 21615

    Απ: Αποθήκευση ώρας σε πεδίο βάσης δεδομένων

     KelMan wrote:
    Και δεν είναι ανάγκη να βάζεις πάντοτε το 1/1/1900. Αν σου χρειάζεται το time part, χρησιμοποιείς μόνο αυτό...

    Είτε το δώσω το 1/1/1900 είτε όχι, το αποτέλεσμα το ίδιο δεν είναι; Ένα select statement το επιστρέφει κι αυτό.

    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  04-12-2006, 15:55 21640 σε απάντηση της 21626

    Απ: Αποθήκευση ώρας σε πεδίο βάσης δεδομένων

    Θέλω να πω, αν σε ένα datetime πεδίο σε ενδιαφέρει μόνο το time part, δεν χρειάζεται να ασχοληθείς καθόλου με το date part.
    Vir prudens non contra ventum mingit
  •  04-12-2006, 16:54 21647 σε απάντηση της 21608

    Απ: Αποθήκευση ώρας σε πεδίο βάσης δεδομένων

    Ή στη χειρότερη, αφού το αντιστοιχήσεις σε κάποια DateTime μεταβλητή εντός .net, μπορείς να λάβεις μόνο το time value, με τη μορφή TimeSpan, χρησιμοποιώντας το .TimeOfDay property.
    Μην αφήνετε τα media να σας "ταΐζουν"!
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems