프로그래밍 언어/Database

SQL Server DateTime 데이터 형식에서 날짜 만 반환하는 방법

Rateye 2021. 6. 6. 10:46
728x90
반응형
질문 : SQL Server DateTime 데이터 형식에서 날짜 만 반환하는 방법

SELECT GETDATE()

반환 : 2008-09-22 15:24:13.790

시간 부분없이 날짜 부분을 원합니다 : 2008-09-22 00:00:00.000

어떻게 얻을 수 있습니까?

답변

SQL Server 2008 이상에서는 다음 CONVERT 해야합니다.

SELECT CONVERT(date, getdate())

이전 버전에서는 다음을 수행 할 수 있습니다.

SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date))

예를 들면

SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))

나에게 준다

2008-09-22 00:00:00.000

장점 :

  • varchar <-> datetime 변환이 필요하지 않습니다.
  • locale 에 대해 생각할 필요가 없습니다.

Michael이 제안한대로

이 변형 사용 : SELECT DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)

select getdate()

SELECT DATEADD(hh, DATEDIFF(hh, 0, getdate()), 0)
SELECT DATEADD(hh, 0, DATEDIFF(hh, 0, getdate()))

SELECT DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, getdate()))

SELECT DATEADD(mm, DATEDIFF(mm, 0, getdate()), 0)
SELECT DATEADD(mm, 0, DATEDIFF(mm, 0, getdate()))

SELECT DATEADD(yy, DATEDIFF(yy, 0, getdate()), 0)
SELECT DATEADD(yy, 0, DATEDIFF(yy, 0, getdate()))

산출:

2019-04-19 08:09:35.557

2019-04-19 08:00:00.000
4763-02-17 00:00:00.000

2019-04-19 00:00:00.000
2019-04-19 00:00:00.000

2019-04-01 00:00:00.000
1903-12-03 00:00:00.000

2019-01-01 00:00:00.000
1900-04-30 00:00:00.000
출처 : https://stackoverflow.com/questions/113045/how-to-return-only-the-date-from-a-sql-server-datetime-datatype
728x90
반응형