티스토리 뷰

SQL Server

SQL Server 날짜 및 시간 데이터타입 비교

탐구하는 SEA&SUN 2018. 7. 26. 17:43

날짜 및 시간 타입 (SQL Server 기준)


 타입

형식 

날짜범위 

문자길이 

저장소크기 

 date

 1900-01-01

 0001-01-01 ~ 9999-12-31

 10

 3바이트(고정)

 datetime

 1900-01-01 00:00:00.000

 1753-01-01 ~ 9999-12-31

 19 ~ 23

 8바이트

 datetime2

 1900-01-01 00:00:00.0000000

 0001-01-01 ~ 9999-12-31

 19 ~ 27

 6 ~ 8바이트

 datetimeoffset

 1900-01-01 00:00:00.0000000 +00:00

 0001-01-01 ~ 9999-12-31

 26 ~ 34

 10바이트(고정)

 smalldatetime

 1900-01-01 00:00:00

 1900-01-01 ~ 2079-06-06

 최대 19

 4바이트(고정)

 time

 00:00:00.0000000

 

 8 ~ 16

 4 ~  5바이트


datetime 과 smalldatetime 의 날짜범위가 다른 형식과 다르므로 컬럼의 성격에 따라 사용에 주의가 필요함.


데이터타입에 따라 문자열로 변환 시 위에 보이는 형식과 다르게 출력될 수 있음


[예제쿼리]

 
select 'date' as dtype, convert(varchar,convert(date,getdate())) as dtext
select 'datetime' as dtype, convert(varchar,convert(datetime,getdate())) as dtext
select 'datetime2' as dtype, convert(varchar,convert(datetime2,getdate())) as dtext
select 'datetimeoffset' as dtype, convert(varchar,convert(datetimeoffset,getdate())) as dtext
select 'smalldatetime' as dtype, convert(varchar,convert(smalldatetime,getdate())) as dtext
select 'time' as dtype, convert(varchar,convert(time,getdate())) as dtext
 

[출력내용]

 dtype

dtext 

 date

 2018-07-26

 datetime

 07 26 2018  5:37PM

 datetime2

 2018-07-26 17:37:57.0900000

 datetimeoffset

 2018-07-26 17:37:57.0900000 +00:00

 smalldatetime

 07 26 2018  5:38PM

 time

 17:37:57.0900000


datetime 을 형식 그대로 문자열로 변환하기 위해서는 아래와 같이 사용


[참고]

CAST 및 CONVERT(Transact-SQL) > 날짜 및 시간 스타일


[쿼리]

select convert(varchar(255),convert(datetime,getdate()),121)


[결과]

2018-07-26 18:46:40.510


smalldatetime 을 형식 그대로 문자열로 변환하기 위해서는 아래와 같이 사용


[쿼리]

select convert(varchar(255),convert(smalldatetime,getdate()),120)


[결과]

2018-07-26 18:46:40


댓글
댓글쓰기 폼