2012-02-24 2 views
2
나는 날짜에 대한 결정 잘라 내기 기능을 찾고 있었다

에 대한 기능이 하나 일했다 :결정적 null이 허용되지 않는 잘라 내기 날짜

DATEADD(dd, DATEDIFF(dd, 0, @date), 0) 

을하지만이있는 것이다 지속 형 계산 열을 입력 할 예정이다 기본 키의 일부이므로 null이 허용되지 않아야합니다. 그래서 이것을 만들었습니다 :

ISNULL(DATEADD(dd, DATEDIFF(dd, 0, @date), 0), '01.01.1900') 

하지만 표현식이 비 결정적이되었습니다. 누구나 왜 그런지, 어떻게 결정 론적으로 만들 수 있습니까?

감사합니다. 이다

+1

@Andriy 남의 대답은 정확하고 내 앞에 있습니다. 당신은 그걸 받아 들여야합니다 – gbn

답변

4
ISNULL(DATEADD(dd, DATEDIFF(dd, 0, @date), 0), 0) 

은, 내 생각은 로케일 설정에 의존하기 때문에 비 결정적 부분은 '01.01.1900'입니다.

+0

@ gbn, Martin Smith, JNK : 감사합니다. –

+1

일반적으로 여기에 있습니다 http://chat.stackexchange.com/rooms/179/the-heap – gbn

0

대신 '01의 어떤 임의의 번호를 사용, 상수 문자열을 사용하지 마십시오 .01.1900 '