posted by 2010. 7. 7. 15:34

MS-SQL Server 날짜에 대한 함수

 

함수

매개변수

내용

Getdate

()

현재 날짜와 시간

DateADD

(datepart, number, date)

Datepart 부분에 number 값을 더한다.

DateDiff

(datepart, date1, date2)

두 날짜 사이의 datepart

DateName

(datepart, date)

Date에 대한 datepart를 이르믕로 돌려준다.

DatePart

(datepart, date)

Date에 대해 지정된 datepart 를 돌려준다.

Day

(date)

Datepart(day,date)와 같다.

Month

(date)

Datepart(Month, date)와 같다.

Year

(date)

Datepart(Year, date)와 같다.

 

시스템의 현재의 시간과 날짜를 가져온다.

 

Select Getdate()

Go

 

Style 유형

유형

유형

의미

나타나는 형식

-

0 or 100

Default

Mon dd yyyy hh:mi AM(or PM)

1

101

USA

Mm/dd/yy

2

102

ANSI

yy.mm.dd

3

103

British / French

Dd/mm/yy

4

104

German

dd.mm.yy

5

105

Ltalian

Dd=mm-yy

6

106

-

Dd mon yy

7

107

-

Mon dd, yy

8

108

-

Hh:mi:ss

-

9 or 109

Defautl

+ Milliseconds

Mon dd, yyyy hh:mi:ss:ms AM

(or PM)

10

110

USA

mm-dd-yy

11

111

Japan

Yy/mm/dd

12

112

ISO

yy.mm.dd

-

13 or 113

Europe Default

Dd mon yyyy hh:mi:ss:ms(24h)

14

114

-

Hh:mi:ss:ms(24h)

 

위의 style형태를 이용하여,

 

Ms(밀리 세컨드)까지 데이터를 가져오고 싶다면 다음과 같이 해야한다.

 

Select Convert(Varchar(30), Getdate(), 9)

go

 

또는 우리가 친숙한 yy.mm.dd 형식으로 표현하고 싶다면 그에 해당하는 유형 변호만 주면 된다.

 

Select Convert(Varchar(30), Getdate(), 2)

Go

 

Select Convert(Varchar(30), Getdate(), 102)

Go

 

첫번째 유형과 두번째 유형과의 차이는 직접해보면 아시겠지만, 년도 펴시에서 세기가 붙는지 않붙는지가 틀리다.

 

DatePart 내용

Datepart

약어

범위

Year

Yy

1753 9999

Quarter

Qq

1-4

Month

Mm

1-12

Day of year

Dy

1-366

Day

Dd

1-31

Week

Wk

0-51

Weekday

Dw

1-7(1이 일요일)

Hour

Hh

0-23

Minute

Mi

0-59

Second

Ss

0-59

Millisecond

ms

0-999

 

 

위의 표를 참고하여, 원하는 ‘월’만 가져오려면 다음과 같이 하면 된다.

 

Select Datepart(mm, Getdate())

Go

 

MS-SQL Server Version7.0 이후부터는 위의 방법 말고도 더 쉬운 방법이 생겼다.

 

Select Month(Getdate())

Go

 

오늘부터 20개월 후는 언제인지 알려면 다음과 같이 하면 된다.

 

Select Dateadd(mm, 20, Getdate())

Go

 

오늘부터 100일 후에는 언제일까 ?

 

Select  Dateadd(dd, 100, Getdate())

Go

 

역시 7.0 이후에서는 이 방법 말고도 더 쉬운 방법이 생겼다.

 

Select Getdate() + 100

Go

 

그럼 3000년까지는 몇 일이나 남았을까 ?

 

Select Datediff(dd, Getdate(), 3000.1.1)

go

 

다음 예제도 한번 보자. 한글 요일명이 출력된다.

 

Select DateName(dw, Getdate()), Datename(nm, Getdate())

Go

 

이상으로 쿼리문에서 자주 사용되는 날짜 관련 함수에 대해서 알아봤다.