提问者:小点点

查询获取特定格式的2个日期之间的结果


我正在尝试选择日期在2个特定日期之间的表的所有结果,例如:11/04/2019 10:20:32AND11/04/2019 12:22:34例如…

我尝试过这样的方法:

SELECT * 
FROM myTable 
WHERE myDate >= '11/04/2019 10:20:32' 
AND myDate <= '11/04/2019 12:22:34';

这个查询不返回任何结果,在我看来是正确的。我在这里看到的问题是没有假设正确的日期格式。

所以我的主要答案是:我如何“转换”那个日期来验证它是大还是小?

我已经尝试过的:

如何在SQL服务器中查询大于某个日期的所有日期?

简单的DateTime sql查询

这些解决方案都没有奏效。

编辑

使用@Gordon Linoff和其他人所说的,我通过ID进行搜索,只是为了查看查询结果返回的格式,并验证日期列是否返回此内容:2019-04-10 10:47:48.000(datetime)

但是当我看到表格的所有结果时,我验证列显示这种格式:10/04/2019 10:47:48实际上不知道为什么…

所以我将我的查询更改为:

SELECT * 
FROM myTable 
WHERE myDate >= '2019-04-10 10:00:00.000' 
AND myDate <= '2019-04-10 11:00:00.000';

工作了!谢谢大家的帮助。


共2个答案

匿名用户

您始终可以使用运算符BETWEEN,例如:

SELECT column_name
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

我不确定您是否需要转换为datetime。

匿名用户

试试这个,通过将列转换为datetime转换(datetime, myDate)

SELECT * 
FROM #tbl 
WHERE convert(datetime, myDate, 103) >= convert(datetime, '11/04/2019 10:20:32', 103 )
AND convert(datetime,myDate , 103) <= convert(datetime, '11/04/2019 12:22:34', 103);