답변:
빠른 당신은 레코드를 반복해야하고 SQL Server 2008의 날짜가없는 경우
SELECT DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
에 StackOverflow에 두 개의 서로 다른 훌륭한 답변이를 부담 : 하나 , 두
Varchar 변환은 최악의 방법 중 하나입니다. 물론, 하나의 가치에 대해서는 중요하지 않지만 들어갈 수있는 좋은 습관입니다.
이 방법은 또한 결정적입니다. 예를 들어 계산 열을 인덱싱하려는 경우입니다. SQL Server에 관한 책을 쓰는 사람들조차도 날짜 / 시간 변환으로 인해 빠져 나옵니다.
이 기술은 또한 확장 가능합니다.
DATEADD(day, DATEDIFF(day, 0, GETDATE()), -1)
DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)
DATEADD(month, DATEDIFF(month, 0, GETDATE()), -1)
DATEADD(month, DATEDIFF(month, 0, GETDATE()), 31)
편집하다:
결정론에 대해 언급했듯이 varchar 메소드는 스타일 112를 사용하지 않으면 안전하지 않습니다.
다른 답변은이 항목을 열에 적용하지 않을 것이라고 지적합니다. 이것은 정확하지만 100k 행을 선택하거나 계산 열 또는 GROUP BY 날짜 만 추가 할 수 있습니다. 그런 다음이 방법을 사용해야합니다.
다른 답변은 스타일 110도 언급합니다. 언어 또는 SET DATEFORMAT 안전하지 않으며 "영국"언어 설정으로 실패합니다. Tibor Karaszi 의 날짜 / 시간 데이터 유형 에 대한 최고의 가이드를 참조하십시오 .