繁体   English   中英

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

[英]SQL Server: how to select records with specific date from datetime column

我对 SQL 很陌生,希望这里有人可以帮助我:

我有一个表格,其中一列dateX格式为日期时间并包含标准日期。 如何从此表中选择此 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

非常感谢您对此的任何帮助,迈克。

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

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';

用于 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
SELECT *
FROM LogRequests
WHERE cast(dateX as date) between '2014-05-09' and '2014-05-10';

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM