在 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
注意:由于这个网站也是用来记录笔记和你学到却又遗忘的技术,我将发布我的答案到这个问题作为DATETIME在MSSQL中最常查询的主题之一。
更新:更明确地阐述示例。
编辑:抱歉,但我不得不给出错误答案(返回错误结果)的回答打下分。
@Jorrit:WHERE (date>'20080813' AND date<'20080815')
会返回13号和14号。
@wearejimbo:接近了,但还差一点! 给你颁发荣誉徽章。你错过了 08/14/2008 23:59:001 到 23:59:999 写入的记录(即午夜前不到1秒的时间)。