【发布时间】:2010-09-05 20:46:55
【问题描述】:
在 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 秒)写入的记录。
【问题讨论】:
标签: sql-server database tsql datetime