我正在尝试选择日期在2个特定日期之间的表的所有结果,例如:11/04/2019 10:20:32
AND11/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';
工作了!谢谢大家的帮助。
您始终可以使用运算符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);