gpt4 book ai didi

sql-server - 将日期字符串与 SQL Server 中的日期时间进行比较?

转载 作者:太空狗 更新时间:2023-10-30 01:38:12 26 4
gpt4 key购买 nike

在 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:关闭,但没有雪茄! 徽章授予您。您错过了在 14/08/2008 23:59:001 到 23:59:999(即午夜前不到 1 秒)写入的记录。

最佳答案

技巧一:

 DECLARE @p_date DATETIME
SET @p_date = CONVERT( DATETIME, '14 AUG 2008', 106 )

SELECT *
FROM table1
WHERE column_datetime >= @p_date
AND column_datetime < DATEADD(d, 1, @p_date)

这样做的好处是它将使用 'column_datetime' 上的任何索引(如果存在)。

关于sql-server - 将日期字符串与 SQL Server 中的日期时间进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com