SQL 2005 db에 대한 쿼리를 실행하는 일부 레거시 VB6 코드 (내 년 이전, 몇 년 전)를보고 있습니다. WHERE
절에 날짜 제한을 제공합니다. 여기서 날짜는 VB6의 날짜에 CLng()
의 결과로 정수 값으로 제공됩니다.INTEGER에서 DATETIME으로의 변환이 VB6과 다릅니다
...
WHERE SomeDateField >= 40064
40064은 VB6가에 CLng()
을 수행하여 (9월 8일)에 오늘 날짜를 변환하는 것입니다.
SELECT CAST(40064 AS DATETIME)
을 그리고 결과는 예상되지 않기 : 그러나, T-SQL이 정수 실제로 9월 10일로 변환합니다.
VB와 T-SQL 간의 변환에서이 차이가 발생할 수있는 사람은 누구입니까?
저는 항상 문제없이 작동한다는 것을 확신합니다. 분명히 표준 ISO 형식의 날짜로 날짜를 전달하는 것이 좋습니다. 그러나이 불일치의 원인을 찾기 시작해야합니다.
, SQL 2005이 아닌 그 수십 년 오래된, 나는 ISO 당신의 제안에 가고 싶어 –
) 날짜 ... –
@Moayad - : 원래 SQL 2000에 대해 실행, 동일한 결과를 제공하는 2005로. – AdaTheDev