[sql-server] TSQL 날짜 시간 필드에서 YYYY-MM-DD 형식으로 날짜를 얻는 방법은 무엇입니까?

SQL Server에서 날짜 YYYY-MM-DD형식을 어떻게 검색 합니까? SQL Server 2000 이상에서 작동하려면 이것이 필요합니다. SQL Server 에서이 작업을 수행하는 간단한 방법이 있습니까? 아니면 결과 집합을 검색 한 후 프로그래밍 방식으로 쉽게 변환 할 수 있습니까?

Microsoft Technet 에서 CAST 및 CONVERT 를 읽었 지만 원하는 형식이 나열되지 않고 날짜 형식을 변경하는 것은 옵션이 아닙니다.



답변

SELECT CONVERT(char(10), GetDate(),126)

원하지 않는 시간 부분의 varchar chops의 크기를 제한합니다.


답변

SELECT convert(varchar, getdate(), 100) -- mon dd yyyy hh:mmAM

SELECT convert(varchar, getdate(), 101) -- mm/dd/yyyy – 10/02/2008                  

SELECT convert(varchar, getdate(), 102) -- yyyy.mm.dd – 2008.10.02           

SELECT convert(varchar, getdate(), 103) -- dd/mm/yyyy

SELECT convert(varchar, getdate(), 104) -- dd.mm.yyyy

SELECT convert(varchar, getdate(), 105) -- dd-mm-yyyy

SELECT convert(varchar, getdate(), 106) -- dd mon yyyy

SELECT convert(varchar, getdate(), 107) -- mon dd, yyyy

SELECT convert(varchar, getdate(), 108) -- hh:mm:ss

SELECT convert(varchar, getdate(), 109) -- mon dd yyyy hh:mm:ss:mmmAM (or PM)

SELECT convert(varchar, getdate(), 110) -- mm-dd-yyyy

SELECT convert(varchar, getdate(), 111) -- yyyy/mm/dd

SELECT convert(varchar, getdate(), 112) -- yyyymmdd

SELECT convert(varchar, getdate(), 113) -- dd mon yyyy hh:mm:ss:mmm

SELECT convert(varchar, getdate(), 114) -- hh:mm:ss:mmm(24h)

SELECT convert(varchar, getdate(), 120) -- yyyy-mm-dd hh:mm:ss(24h)

SELECT convert(varchar, getdate(), 121) -- yyyy-mm-dd hh:mm:ss.mmm

SELECT convert(varchar, getdate(), 126) -- yyyy-mm-ddThh:mm:ss.mmm


답변

시작 SQL 서버 2012 (원래의 질문은 2000입니다) :

SELECT FORMAT(GetDate(), 'yyyy-MM-dd')


답변

귀하가 사용하는 양식은 온라인 설명서에 나와 있습니다.

http://msdn.microsoft.com/en-us/library/aa226054(SQL.80).aspx

예를 들어 다음을 시도하십시오.

select convert(varchar,getDate(),120)
select convert(varchar(10),getDate(),120)


답변

convert형식 지정자 120이 있는 함수는 “yyyy-MM-dd HH : mm : ss”형식을 제공하므로 날짜 부분 만 가져 오려면 길이를 10으로 제한하면됩니다.

convert(varchar(10), theDate, 120)

그러나 날짜 형식은 일반적으로 데이터베이스 나 비즈니스 계층이 아닌 프레젠테이션 계층에서 수행하는 것이 좋습니다. 데이터베이스에서 형식화 된 날짜를 리턴하면 계산을 수행해야하는 경우 클라이언트 코드가 날짜로 다시 구문 분석해야합니다.

C #의 예 :

theDate.ToString("yyyy-MM-dd")


답변

YYYYMMDD의 경우

select convert(varchar,getDate(),112)

SQLServer2008에서만 테스트했습니다.


답변

다른 방법은 …

CONVERT(varchar, DATEPART(yyyy, @datetime)) + '/' + CONVERT(varchar, DATEPART(mm, @datetime)) + '/' + CONVERT(varchar, DATEPART(dd, @datetime))