如何对提交的日期时间使用通配符



如何使用通配符作为日期?提交日期字段是日期时间,但我尝试的查询返回的内容完全不同。我想要提交日期以 2019-08 开头的记录

这是我尝试过的代码:

select * 
from INVPol
where SubmitDate like '[2019-08]%'

">How do my used card for datetme">很简单,你没有。使用正确的日期逻辑。对于您拥有的最佳方法

如下
SELECT *
FROM dbo.INCPol
WHERE SubmitDate >= '20190801'
AND SubmitDate < '20190901';

使用大于或等于的下边界和小于的上边界意味着将返回日期在 2019 年 8 月的每一行。这通常被视为"最佳"方式,因为它是最全面的。使用具有时间部分的值时,使用BETWEEN的逻辑可能会给出不正确的结果。这是因为2019-08-31T00:00:00.0000001不是BETWEEN '20190801' and '20190831'(它是结束阈值后的 1/1000000 秒(;这意味着您实际上会损失一天的价值。此外,日期'2019-09-01T00:00:00.0000000'BETWEEN '20190801' AND '20190901',因此您可能会得到(一些(不需要的行。

尝试在日期上使用通配符意味着您必须将列的值转换为varchar,这将导致性能问题。将日期保留为日期和时间数据类型,并将其查询为一个数据类型。

最新更新