Ich habe einen Tabellentest mit einem DATETIME
Feld wie folgt:
ID NAME DATE
1 TESTING 2014-03-19 20:05:20.000
Was ich brauche eine Abfrage, die diese Zeile und jede Zeile mit Datum 19.03.2014 zurückgibt, egal zu welcher Zeit. Ich habe es versucht
select * from test where date = '03/19/2014';
Es werden jedoch keine Zeilen zurückgegeben. Die einzige Möglichkeit, es zum Laufen zu bringen, besteht darin, auch den Zeitanteil des Datums anzugeben:
select * from test where date = '03/19/2014 20:03:02.000';
quelle
DateDiff()
Funktion in all ihren Varianten die Anzahl der Datumsgrenzen berechnet und zurückgibt, die überschritten werden müssen, um von einem Datum zum anderen zu gelangen. Aus diesem GrundeDateDiff(day, '1Jan2016', '31Dec2017 23:259:59')
undDateDiff(day, '31Dec2016 23:259:59', '1Jan2017 ')
beide Rückkehr1
.Einfache Antwort;
quelle
Ich verwende MySQL 5.6 und es gibt eine DATE-Funktion, um nur den Datumsteil aus der Datumszeit zu extrahieren. Die einfache Lösung für die Frage lautet also:
http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html
quelle
Das ist wirklich schlecht Antwort. Aus zwei Gründen.
1. Was passiert mit Zeiten wie 23.59.59.700 usw. Es gibt Zeiten, die größer als 23:59:59 und am nächsten Tag sind.
2. Das Verhalten hängt vom Datentyp ab. Die Abfrage verhält sich für die Typen datetime / date / datetime2 unterschiedlich.
Das Testen mit 23: 59: 59.999 macht es noch schlimmer, da Sie je nach Datentyp unterschiedliche Rundungen erhalten.
- Für Datum ist der Wert 'gehackt'. - Für datetime wird der Wert auf das nächste Datum aufgerundet. (Nächster Wert). - Für datetime2 ist der Wert genau.
quelle
Dies funktioniert bei mir für MS SQL Server:
quelle
Versuche dies
quelle
Sie können dies versuchen
quelle
Sie können diesen Ansatz verwenden, bei dem der Zeitteil abgeschnitten wird:
quelle
quelle
Verwenden Sie dies einfach in Ihrer
WHERE
Klausel.Der unten stehende Abschnitt "SubmitDate" ist der Spaltenname. Fügen Sie also Ihren eigenen ein.
Dies gibt nur den "Jahr" -Teil der Ergebnisse zurück, wobei die Minuten usw. weggelassen werden.
quelle
"col1" ist der Name der Spalte mit Datum und Uhrzeit
<Name der Spalte>. Hier können Sie den Namen nach Bedarf ändern
quelle
quelle
Es gibt ein Problem mit Datumsangaben und Sprachen. Um dies zu vermeiden, müssen Sie nach Datumsangaben mit diesem Format JJJJMMTT fragen.
Dieser Weg unten sollte laut dem unten stehenden Link der schnellste sein. Ich habe SQL Server 2012 eingecheckt und bin mit dem Link einverstanden.
quelle
Testen Sie diese Abfrage.
quelle
quelle
quelle