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

时间:2014-06-12 19:12:39

标签: sql sql-server datetime

我对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

非常感谢Mike的任何帮助。

2 个答案:

答案 0 :(得分:19)

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

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

通常,此类表达式会排除使用索引。但是,根据网络上的各种来源,以上内容是可以理解的(意味着它将使用索引),例如thisthis

我会倾向于使用以下内容,只是出于习惯:

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

答案 1 :(得分:1)

在SQL Server中进行完美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 匹配

CreateObject("Word.Application")