gpt4 book ai didi

sql-server - 如何在 Microsoft SQL Server 中仅使用日期查询 DATETIME 字段?

转载 作者:行者123 更新时间:2023-12-01 17:21:19 25 4
gpt4 key购买 nike

我有一个带有 DATETIME 字段的表 TEST,如下所示:

ID NAME DATE
1 TESTING 2014-03-19 20:05:20.000

我需要一个查询返回该行以及日期为 03/19/2014 的每一行,无论时间是什么。我尝试使用

select * from test where date = '03/19/2014';

但它不返回任何行。我发现使其工作的唯一方法是还提供日期的时间部分:

select * from test where date = '03/19/2014 20:03:02.000';

最佳答案

使用范围或 DateDiff 函数

 select * from test 
where date >= '20140319' and date < '20140320'

 select * from test 
where datediff(day, date, '03/19/2014') = 0

其他选项有:

  1. 如果您可以控制数据库架构,并且不需要时间数据,取出来。

  2. 或者,如果必须保留它,请添加一个计算列属性,该属性已删除日期值的时间部分...

更改表测试添加 DateOnly As DateAdd(day, datediff(day, 0, date), 0)

或者,在更新版本的 SQL Server 中...

更改表测试添加 DateOnly As Cast(DateAdd(day, datediff(day, 0, date), 0) as Date)

然后,您可以简单地编写查询:

select * from test 
where DateOnly = '03/19/2014'

关于sql-server - 如何在 Microsoft SQL Server 中仅使用日期查询 DATETIME 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22506930/

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