In SQL Server habe ich eine Spalte, die ein Zeitelement enthält.Vergleichen Sie eine Datumszeichenfolge mit Datetime in SQL Server?
Beispiel:
'14 AUG 2008 14:23:019'
Was ist die beste Methode, um nur die Datensätze für einen bestimmten Tag zu wählen, die Zeit Teil zu ignorieren?
Beispiel: (Nicht sicher, da es nicht die Zeit Teil und kehrt überein keine Zeilen)
DECLARE @p_date DATETIME
SET @p_date = CONVERT(DATETIME, '14 AUG 2008', 106)
SELECT *
FROM table1
WHERE column_datetime = @p_date
Hinweis: Da diese Seite ist auch über Notizen und Techniken notieren Sie abholen und dann vergessen Ich werde meine eigene Antwort auf diese Frage als DATETIME Zeug in MSSQL ist wahrscheinlich das Thema, das ich am meisten in SQLBOL nachschlagen.
aktualisieren Geklärte Beispiel genauer zu sein.
bearbeiten Sorry, aber ich habe mit Down-mod falsche Antworten (Antworten, die falsche Ergebnisse angezeigt) hatte.
@Jorrit: WHERE (date>'20080813' AND date<'20080815')
werden die 13. und 14. zurückgeben.
@wearejimbo: Schließen, aber keine Zigarre! Abzeichen für Sie vergeben. Sie verpasste schriftlichen Aufzeichnungen 14.08.2008 23: 59: 001-23: 59: (. Dh weniger als 1 Sekunde vor Mitternacht) 999
Ich glaube, dass CAST ('14 August 2008' als Datum-) ist etwas besser. Ich denke, es ist ein wenig lesbarer und ich glaube, dass CAST portabler ist als CONVERT(), da CAST() mit ANSI SQL-92 und -99 kompatibel ist. –
Sie können das BETWEEN-Schlüsselwort als Kurzform zu dieser Antwort verwenden. –
@BorhanMooz, tatsächlich, die BETWEEN erfasst nicht die> =/
NargothBond