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

问题描述 投票:8回答:3

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

我有一个表格,其中一列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

非常感谢Mike的任何帮助。

sql sql-server datetime
3个回答
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
投票

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

0
投票

SELECT * FROM LogRequests在'2014-05-09'和'2014-05-10'之间转换WHERE(dateX作为日期);

© www.soinside.com 2019 - 2024. All rights reserved.