SQL Server:如何从datetime列中选择具有特定日期的记录

wb1gzix0  于 2022-12-17  发布在  SQL Server
关注(0)|答案(3)|浏览(119)

我有一个表,其中dateX列的格式为datetime,包含标准日期。
如何从该表中选择dateX等于某个日期(例如2014年5月9日)的所有记录?
我尝试了下面的方法,但是即使我有几条记录具有此日期,也不会返回任何结果。

SELECT     *
FROM         dbo.LogRequests
WHERE     (CONVERT(VARCHAR(10), dateX, 101) = '09/05/14')

编辑:在数据库中,使用SQL 2012,上面的示例如下所示:2014-05-09 00:00:00.000

wgx48brx

wgx48brx1#

最简单的方法是转换为日期:

SELECT *
FROM dbo.LogRequests
WHERE cast(dateX as date) = '2014-05-09';

通常,这样的表达式排除了索引的使用,但是,根据网络上的各种来源,上面的表达式是sargable(意味着它将使用索引),例如thisthis
出于习惯,我倾向于使用以下语句:

SELECT *
FROM dbo.LogRequests
WHERE dateX >= '2014-05-09' and dateX < '2014-05-10';
3lxsmp7m

3lxsmp7m2#

在SQL Server中实现完美的DateTime匹配

SELECT ID FROM [Table Name] WHERE (DateLog between '2017-02-16 **00:00:00.000**' and '2017-12-16 **23:59:00.999**') ORDER BY DateLog DESC
zbwhf8kr

zbwhf8kr3#

SELECT *
FROM LogRequests
WHERE cast(dateX as date) between '2014-05-09' and '2014-05-10';

这将选择两个日期之间的所有数据

相关问题