在 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 秒)写入的记录。