Ich bin ziemlich neu in SQL und hoffe, dass mir hier jemand helfen kann:
Ich habe eine Tabelle mit einer Spalte dateX
, die als datetime formatiert ist und Standarddaten enthält. Wie kann ich aus dieser Tabelle alle Datensätze auswählen, bei denen dieses Datum ein bestimmtes Datum hat, z. 9. Mai 2014?
Ich habe folgendes versucht, aber das gibt nichts zurück, auch wenn ich mehrere Datensätze mit diesem Datum habe.
SELECT *
FROM dbo.LogRequests
WHERE (CONVERT(VARCHAR(10), dateX, 101) = '09/05/14')
Bearbeiten: In der Datenbank sieht das obige Beispiel mit SQL 2012 wie folgt aus: 2014-05-09 00:00:00.000
Vielen Dank für jede Hilfe, Mike.
Der einfachste Weg ist die Konvertierung in ein Datum:
SELECT *
FROM dbo.LogRequests
WHERE cast(dateX as date) = '2014-05-09';
Oft schließen solche Ausdrücke die Verwendung eines Index aus. Laut verschiedenen Quellen im Internet ist das Obige jedoch nicht aufrufbar (dh es wird ein Index verwendet), wie this und this .
Ich wäre geneigt, aus Gewohnheit folgendes zu verwenden:
SELECT *
FROM dbo.LogRequests
WHERE dateX >= '2014-05-09' and dateX < '2014-05-10';
Für perfekte DateTime
Übereinstimmung in SQL Server
SELECT ID FROM [Table Name] WHERE (DateLog between '2017-02-16 **00:00:00.000**' and '2017-12-16 **23:59:00.999**') ORDER BY DateLog DESC
SELECT * FROM LogRequests WO gegossen wird (DatumX als Datum) zwischen '2014-05-09' und '2014-05-10';