Πώς μπορώ να ζητήσω το πεδίο DateTime της βάσης δεδομένων εντός ενός συγκεκριμένου εύρους;
Χρησιμοποιώ SQL SERVER 2005
Κωδικός σφάλματος παρακάτω
SELECT *
FROM TABLENAME
WHERE DateTime >= 12/04/2011 12:00:00 AM
AND DateTime <= 25/05/2011 3:53:04 AM
Σημειώστε ότι πρέπει να πάρω σειρές εντός ενός συγκεκριμένου χρονικού εύρους. Παράδειγμα, χρονικό εύρος 10 λεπτών.
Προς το παρόν η SQL επιστρέφει με λανθασμένη σύνταξη κοντά στο '12'.",
Σας ξέφυγε το σύμβολο του απλού εισαγωγικού:
SELECT *
FROM TABLENAME
WHERE DateTime >= '12/04/2011 12:00:00 AM' AND DateTime <= '25/05/2011 3:53:04 AM'
Επίσης, συνιστάται η χρήση της μορφής ISO8601 YYYY-MM-DDThh:mm:ss.nnn[ Z ], καθώς αυτή δεν εξαρτάται από την τοπική κουλτούρα του διακομιστή σας.
SELECT *
FROM TABLENAME
WHERE
DateTime >= '2011-04-12T00:00:00.000' AND
DateTime <= '2011-05-25T03:53:04.000'
Χρειάζεστε εισαγωγικά γύρω από τη συμβολοσειρά που προσπαθείτε να περάσετε ως ημερομηνία, και μπορείτε επίσης να χρησιμοποιήσετε την εντολή BETWEEN εδώ:
SELECT *
FROM TABLENAME
WHERE DateTime BETWEEN '04/12/2011 12:00:00 AM' AND '05/25/2011 3:53:04 AM'
Δείτε την απάντηση στην επόμενη ερώτηση για παραδείγματα σχετικά με το πώς μπορείτε να μετατρέψετε ρητά συμβολοσειρές σε ημερομηνίες καθορίζοντας ταυτόχρονα τη μορφή:
https://stackoverflow.com/questions/207190/sql-server-string-to-date-conversion
SELECT *
FROM TABLENAME
WHERE [DateTime] >= '2011-04-12 12:00:00 AM'
AND [DateTime] <= '2011-05-25 3:35:04 AM'
Εάν αυτό δεν λειτουργεί, παρακαλούμε δημιουργήστε το σενάριό σας και δημοσιεύστε το εδώ.Αυτό θα μας βοηθήσει να σας δώσουμε γρήγορα τη σωστή απάντηση.