yyyy-mm-dd hh:mm:ss.000
不是一种语言和区域设置安全的格式!
SELECT CONVERT(datetime, '2021-09-07');
SET LANGUAGE Nederlands;
SELECT CONVERT(datetime, '2021-09-07');
结果(db<>fiddle):
-----------------------
2021-09-07 00:00:00.000
-----------------------
2021-07-09 00:00:00.000
请使用yyyy-mm-ddThh:mm:ss.000
- T 非常重要。所以:
WHERE DateCommande = '2018-09-05T00:00:00.000';
或者在您的情况下,可能只是更接近您在问题中的内容,而不是您在屏幕截图中的内容:
WHERE DateCommande = '20180905'; -- YYYYMMDD *not* YYYY-MM-DD
但是除非您只想要那些没有时间的行,或者确定永远不会有与日期相关联的时间(在这种情况下,为什么不是数据类型date
?),这些查询都不安全。最好说:
WHERE DateCommande >= '20180905'
AND DateCommande < '20180906';
Regional formats
有关更多背景信息,请参阅此处标题为部分的链接: