SQL Server にDATETIME
は、時間要素を含む列があります。
例:
'14 AUG 2008 14:23:019'
時間の部分を無視して、特定の日のレコードのみを選択する最良の方法は何ですか?
例: (時間の部分と一致せず、行を返さないため、安全ではありません)
DECLARE @p_date DATETIME
SET @p_date = CONVERT( DATETIME, '14 AUG 2008', 106 )
SELECT *
FROM table1
WHERE column_datetime = @p_date
注: このサイトは、拾って忘れたメモやテクニックを書き留めることも目的としているため、MSSQL の DATETIME に関する内容はおそらく SQLBOL で最も検索するトピックであるため、この質問に対する私自身の回答を投稿します。
明確化された例を更新して、より具体的にします。
編集申し訳ありませんが、間違った回答 (間違った結果を返す回答) を修正する必要がありました。
@Jorrit: WHERE (date>'20080813' AND date<'20080815')
13 番目と 14 番目を返します。
@wearejimbo:閉じますが、葉巻はありません! あなたに授与されるバッジ。2008 年 8 月 14 日 23:59:001 から 23:59:999 に書き込まれたレコードを見逃しました (つまり、真夜中の 1 秒前)。