У меня проблема с некоторым T-SQL в SP на SQLServer 2005, сравнивая даты. Я запускаю хранимую процедуру из c # с ADO.Net и передаю нативный тип данных c # datetime (это может быть моей проблемой, поскольку я знаю, что диапазоны немного отличаются). Я делаю следующее, чтобы сравнить 2 значения DateTime в моем SP.
CREATE PROCEDURE [dbo].[spGetLikelyMatchedIndividuals_v1]
@ID BIGINT = NULL,
@DOB DATETIME = NULL, ...
WHERE ISNULL(CONVERT(CHAR(8),Ind.[DateOfBirth],112),'') = ISNULL(CONVERT(CHAR(8),@DOB,112),'')
В большинстве случаев это работает нормально, но по какой-то причине произойдет сбой с некоторыми датами и временем. Это одно значение даты и времени, которое не срабатывает:
1925-07-04
Есть ли у кого-нибудь идея, почему это может не сработать? Также, каков наилучший способ сравнить два значения даты без компонента времени?