Если вы передадите строку типа '20190604'
в datetime
, тогда да, она будет интерпретироваться как дата и время 2019-06-04T00:00:00.000
. Это означает, что если у вас есть какие-либо значения, которых нет в полночь, строка не будет возвращена (даже если это значение 2019-06-04T00:00:00.003
).
Если у вас есть значения, отличные от полуночи, и вы хотите вернуть все строки для определенной даты, вы можете использовать CONVERT
/ CAST
, чтобы изменить тип данных столбца на date
; который все еще SARGable:
SELECT DateField
FROM CalendarTbl
WHERE CONVERT(date,DateField) = '20190604';