다른 날짜가 주어진 달의 첫날 인 날짜를 만드는 가장 간단한 방법

StackOverflow https://stackoverflow.com/questions/121581

  •  02-07-2019
  •  | 
  •  

문제

SQL Server에서 다른 DateTime을 기준으로 한 달의 첫 번째 시간을 나타내는 가장 간단하고 깨끗한 방법은 무엇입니까? 예 : 2005 년 3 월 3 일 14:23의 변수 또는 열이 있으며 2005 년 1 월 1 일에 2005 00:00을 받고 싶습니다 (Varchar가 아닌 DateTime으로).

도움이 되었습니까?

해결책

Select DateAdd(Month, DateDiff(Month, 0, GetDate()), 0)

열에서 이것을 실행하려면 getDate ()를 열 이름으로 바꾸십시오.

이 코드의 속임수는 Datediff와 함께합니다. Datediff는 정수를 반환합니다. 두 번째 매개 변수 (0)는 1900 년 1 월 1 일 SQL Server의 0 날짜를 나타냅니다. 따라서 Datediff는 1900 년 1 월 1 일 이후 정수 수를 계산 한 다음 1900 년 1 월 1 일에 그 달을 추가합니다. 순 효과는 DateTime 값의 하루 (및 시간) 부분을 제거하는 것입니다.

다른 팁

SELECT DATEADD(mm, DATEDIFF(mm, 0, @date), 0)

이런 것이 효과가있을 것입니다 ....

UPDATE YOUR_TABLE
SET NewColumn = DATEADD(day, (DATEPART(day, OldColumn) -1)*-1, OldColumn)

그냥 사용하십시오

DATEADD(DAY, 1-DAY(@date), @date)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top