Οι λειτουργίες ημερομηνίας SQL και το GETDATE επεξηγούνται με παραδείγματα σύνταξης

Υπάρχουν 61 συναρτήσεις ημερομηνίας που ορίζονται στη MySQL. Μην ανησυχείτε, δεν θα τα ελέγξουμε όλα εδώ. Αυτός ο οδηγός θα σας δώσει μια εισαγωγή σε μερικές από τις κοινές, και αρκετή έκθεση για να μπορείτε να εξερευνήσετε άνετα μόνοι σας.

Θα καλύψουμε:

  • Λήψη της τρέχουσας ημερομηνίας
  • Ημερομηνία μαθηματικών
  • Ημερομηνίες όπου ή έχει ρήτρα

Λήψη της τρέχουσας ημερομηνίας

Η λήψη της ημερομηνίας από το σύστημα μπορεί να είναι πολύ βολική για την επεξεργασία δεδομένων χρησιμοποιώντας SQL.

-- current date select now(), sysdate(), current_date(), current_time(), -- date and time from the system on execution dayofyear(now()) as NumDaysSoFarThisYr, EXTRACT(YEAR FROM now()) as theYearPart, EXTRACT(YEAR_MONTH FROM now()) as theYrMonPart, date_format(now(), '%W %M %Y') as oneOfManyFormats; ; 

Στο ερώτημα SQL, βλέπουμε τα εξής:

  • Οι δύο πρώτες στήλες στο αποτέλεσμα είναι δύο τρόποι για να λάβετε τις ίδιες πληροφορίες: την ημερομηνία στο σύστημα κατά τον χρόνο εκτέλεσης του SQL.
  • Οι επόμενες δύο στήλες διαχωρίζουν μόνο τα μέρη Ημερομηνία και Ώρα της ημερομηνίας συστήματος.
  • Το επόμενο παρουσιάζει τον «αριθμό ημέρας» της ημερομηνίας του συστήματος αυτού του έτους. Θα παρατηρήσετε ότι αυτό είναι μια μέρα περισσότερο από τα μαθηματικά που εμφανίζονται στο επόμενο παράδειγμα.
  • Τα επόμενα δύο εκχυλίσματα μόνο το έτος και στη συνέχεια τόσο το έτος όσο και το μήνα
  • Τελευταίο, αλλά όχι λιγότερο σημαντικό, υπάρχει ένα μόνο παράδειγμα ενός από τους πολλούς τρόπους μορφοποίησης αυτών των ημερομηνιών.

Μπορείτε επίσης να χρησιμοποιήσετε το GETDATE () για να λάβετε την τρέχουσα ημερομηνία.

Ημερομηνία μαθηματικών

select now(), current_date(), datediff(now(),'2017-01-01') as daysThisYear, subdate(current_date(), interval 150 day) as '150DaysAgo', adddate(now(), interval 7 day) as dateInA_Week -- date in a week ; 
εικόνα-1

Εδώ βλέπουμε:

  • Οι δύο πρώτες στήλες είναι απλώς η ημερομηνία και η ώρα του συστήματος για αναφορά.
  • Η δεύτερη στήλη είναι η διαφορά ημερομηνίας (ημερομηνία) μεταξύ της πρώτης Ιανουαρίου 2017 και της ημερομηνίας συστήματος.
  • Οι δύο τελευταίες στήλες είναι παραδείγματα αφαίρεσης και προσθήκης ημερομηνιών.

Σε σημείο όπου ή έχει ρήτρα

Ακολουθούν δύο παραδείγματα χρήσης μαθηματικών ημερομηνιών σε μια ρήτρα όπου:

select * from student; - to show the current data being used for the example select * from student where recordCreated < '2017-01-01'; select * from student where recordCreated < subdate(current_date(), interval 225 day); 

Σχετικά με το μέρος HAVING: Λάβετε υπόψη, το μεγαλύτερο μέρος της λογικής του WHERE clause θα λειτουργήσει επίσης στη ρήτρα HAVING του GROUP BY. Η διαφορά μεταξύ των δύο είναι ότι ο όρος WHERE τρέχει ενάντια στα πλήρη δεδομένα και το HAVING εκτελείται ενάντια στα δεδομένα που συγκεντρώνονται από τη ρήτρα GROUP BY.

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