Συνταγή SQL Date

Ημερομηνία SQL

Η πιο δύσκολη εργασία όταν επεξεργαζόμαστε ημερομηνίες είναι να διασφαλίσουμε ότι η μορφή της ημερομηνίας που εισάγουμε ταιριάζει με τη μορφή της στήλης ημερομηνίας στη βάση δεδομένων.

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

Πριν από την ανασκόπηση της πολυπλοκότητας των ερωτημάτων ημερομηνίας, ας δούμε τις πιο σημαντικές εσωτερικές λειτουργίες επεξεργασίας ημερομηνίας.

Λειτουργίες ημερομηνίας του MySQL

Η παρακάτω τаблицή περιλαμβάνει τις πιο σημαντικές εσωτερικές ημερομηνίες λειτουργίες του MySQL:

Λειτουργία Περιγραφή
NOW() Επιστροφή τρέχουσας ημερομηνίας και ώρας
CURDATE() Επιστροφή τρέχουσας ημερομηνίας
CURTIME() Επιστροφή τρέχουσας ώρας
DATE() Εξαγωγή ημερομηνίας από έκφραση ημερομηνίας/χρόνου
EXTRACT() Επιστροφή μοναδικών τμημάτων ημερομηνίας/χρόνου
DATE_ADD() Προσθήκη συγκεκριμένου χρονικού διαστήματος σε ημερομηνία
DATE_SUB() Αφαίρεση συγκεκριμένου χρονικού διαστήματος από ημερομηνία
DATEDIFF() Επιστροφή ημερών μεταξύ δύο ημερομηνιών
DATE_FORMAT() Παρουσίαση ημερομηνίας/χρόνου σε διαφορετικά μορφότυπα

Λειτουργίες ημερομηνίας του SQL Server

Η παρακάτω τаблицή περιλαμβάνει τις πιο σημαντικές εσωτερικές ημερομηνίες λειτουργίες του SQL Server:

Λειτουργία Περιγραφή
GETDATE() Επιστροφή τρέχουσας ημερομηνίας και ώρας
DATEPART() Επιστροφή μοναδικών τμημάτων ημερομηνίας/χρόνου
DATEADD() Προσθήκη ή αφαίρεση συγκεκριμένου χρονικού διαστήματος από ημερομηνία
DATEDIFF() Επιστροφή του χρόνου μεταξύ δύο ημερομηνιών
CONVERT() Παρουσίαση ημερομηνίας/χρόνου σε διαφορετικά μορφότυπα

Τύπος δεδομένων SQL Date

MySQL χρησιμοποιεί τις παρακάτω τύπους δεδομένων για την αποθήκευση ημερομηνιών ή ημερομηνίας/χρόνου στη βάση δεδομένων:

  • DATE - Σύστημα YYYY-MM-DD
  • DATETIME - Σύστημα: YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - Σύστημα: YYYY-MM-DD HH:MM:SS
  • YEAR - Σύστημα YYYY ή YY

Ο SQL Server χρησιμοποιεί τα παρακάτω δεδομένα τύπους για την αποθήκευση ημερομηνιών ή ημερομηνίας/χρόνου στη βάση δεδομένων:

  • DATE - Σύστημα YYYY-MM-DD
  • DATETIME - Σύστημα: YYYY-MM-DD HH:MM:SS
  • SMALLDATETIME - Σύστημα: YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - Σύστημα: Μοναδικός αριθμός

Διαχείριση Ημερομηνίας SQL

Αν δεν περιλαμβάνεται η ώρα, μπορούμε να συγκρίνουμε δύο ημερομηνίες εύκολα!

Ας υποθέσουμε ότι έχουμε την παρακάτω "Orders" τάξη:

OrderId ProductName OrderDate
1 computer 2008-12-26
2 printer 2008-12-26
3 electrograph 2008-11-12
4 telephone 2008-10-19

Τώρα, θέλουμε να επιλέξουμε τις εγγραφές με OrderDate ως "2008-12-26" από την παραπάνω τάξη.

Χρησιμοποιούμε την παρακάτω SELECT φράση:

SELECT * FROM Orders WHERE OrderDate='2008-12-26'

Συλλογή αποτελεσμάτων:

OrderId ProductName OrderDate
1 computer 2008-12-26
3 electrograph 2008-12-26

Ας υποθέσουμε ότι η "Orders" είναι όπως παρακάτω (σημειώστε την ώρα στην στήλη "OrderDate"):

OrderId ProductName OrderDate
1 computer 2008-12-26 16:23:55
2 printer 2008-12-26 10:45:26
3 electrograph 2008-11-12 14:12:08
4 telephone 2008-10-19 12:56:10

Αν χρησιμοποιήσουμε την παραπάνω SELECT φράση:

SELECT * FROM Orders WHERE OrderDate='2008-12-26'

Δεν μπορούμε να πάρουμε αποτελέσματα. Αυτό οφείλεται στο γεγονός ότι η ερώτηση δεν περιέχει την ώρα της ημερομηνίας.

Συμβουλή:Αν θέλετε να κάνετε την ερώτηση σας απλή και πιο εύκολα διαχειρίσιμη, μην χρησιμοποιείτε την ώρα στη ημερομηνία!