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

Mik*_*ike 10 sql sql-server datetime

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

我有一个表格,其中一列dateX格式化为日期时间并包含标准日期.如何从此表中选择此dateX等于特定日期的所有记录,例如2014年5月9日?

我试过以下但是即使我有几个这个日期的记录,这也没有返回.

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

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

非常感谢Mike的任何帮助.

Gor*_*off 24

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

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

通常,这样的表达式排除了索引的使用.但是,根据网络上的各种来源,上面的内容是可以理解的(意思是它将使用索引),例如thisthis.

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

SELECT *
FROM dbo.LogRequests
WHERE dateX >= '2014-05-09' and dateX < '2014-05-10';
Run Code Online (Sandbox Code Playgroud)

  • 大声笑,您以相同的答案击败了我4秒钟。:)我要删除我的... (2认同)