안규 공부방

MS-SQL > 날짜 관련 함수

등록일 : 2017-06-30 17:26 조회수 : 93,371

1. GETDATE()
  시스템의 날짜를 리턴합니다. 

SELECT GETDATE()
 -> 2017-06-30 오후 5:23:15
SELECT GETDATE()+100
  -> 2017-10-08 오후 5:23:15

2. CONVERT()

결과값의 데이타 타입을 변환시킵니다.

SELECT CONVERT(varchar(30), GETDATE(),1)
06/30/17
SELECT CONVERT(varchar(30), GETDATE(),2)
17.06.30
SELECT CONVERT(varchar(30), GETDATE(),3)
30/06/17
SELECT CONVERT(varchar(30), GETDATE(),4)
30.06.17
SELECT CONVERT(varchar(30), GETDATE(),5)
30-06-17
SELECT CONVERT(varchar(30), GETDATE(),6)
30 06 17
SELECT CONVERT(varchar(30), GETDATE(),7)
06 30, 17
SELECT CONVERT(varchar(30), GETDATE(),8)
17:23:14
SELECT CONVERT(varchar(30), GETDATE(),9)
06 30 2017  5:23:14:623PM
SELECT CONVERT(varchar(30), GETDATE(),10)
06-30-17
SELECT CONVERT(varchar(30), GETDATE(),11)
17/06/30
SELECT CONVERT(varchar(30), GETDATE(),12)
170630
SELECT CONVERT(varchar(30), GETDATE(),13)
30 06 2017 17:23:14:623
SELECT CONVERT(varchar(30), GETDATE(),14)
17:23:14:623
SELECT CONVERT(varchar(30), GETDATE(),20)
2017-06-30 17:23:14
SELECT CONVERT(varchar(30), GETDATE(),21)
2017-06-30 17:23:14.623
SELECT CONVERT(varchar(30), GETDATE(),22)
06/30/17  5:23:14 PM
SELECT CONVERT(varchar(30), GETDATE(),23)
2017-06-30
SELECT CONVERT(varchar(30), GETDATE(),24)
17:23:14
SELECT CONVERT(varchar(30), GETDATE(),25)
2017-06-30 17:23:14.623
SELECT CONVERT(varchar(30), GETDATE(),100)
06 30 2017  5:23PM
SELECT CONVERT(varchar(30), GETDATE(),101)
06/30/2017
SELECT CONVERT(varchar(30), GETDATE(),102)
2017.06.30
SELECT CONVERT(varchar(30), GETDATE(),103)
30/06/2017
SELECT CONVERT(varchar(30), GETDATE(),104)
30.06.2017
SELECT CONVERT(varchar(30), GETDATE(),105)
30-06-2017
SELECT CONVERT(varchar(30), GETDATE(),106)
30 06 2017
SELECT CONVERT(varchar(30), GETDATE(),107)
06 30, 2017
SELECT CONVERT(varchar(30), GETDATE(),108)
17:23:14
SELECT CONVERT(varchar(30), GETDATE(),109)
06 30 2017  5:23:14:640PM
SELECT CONVERT(varchar(30), GETDATE(),110)
06-30-2017
SELECT CONVERT(varchar(30), GETDATE(),111)
2017/06/30
SELECT CONVERT(varchar(30), GETDATE(),112)
20170630
SELECT CONVERT(varchar(30), GETDATE(),113)
30 06 2017 17:23:14:640
SELECT CONVERT(varchar(30), GETDATE(),114)
17:23:14:640


3. DATEPART() 함수 

날짜에서 지정한 날자형식부분만 추출해줍니다    
형식: DATEPART(날짜형식, 날짜)

SELECT DATEPART(yy, GETDATE())
2017
SELECT DATEPART(mm, GETDATE())
6
SELECT DATEPART(dd, GETDATE())
30
SELECT DATEPART(hour, GETDATE())
17
SELECT DATEPART(mi, GETDATE())
23
SELECT DATEPART(ss, GETDATE())
14
SELECT DATEPART(dw, GETDATE())
6


년/월/일/시/분/초/요일을 숫자로  보여준 예제입니다. 

4. YEAR() , MONTH() , DAY() 함수     

해당 년,월,일을 각각 뽑아줍니다. 
형식: YEAR(날짜) , MONTH(날짜) , DAY(날짜)

SELECT YEAR(GETDATE())
2017
SELECT MONTH(GETDATE())
6
SELECT DAY(GETDATE())
30


5. DATEADD() 함수     
DATEADD함수는 날짜에 지정한 만큼을 더합니다.
형식: DATEADD(날짜형식, 더할 값, 날짜)

SELECT DATEADD(mm,20,GETDATE())
2019-02-28 오후 5:23:15

현재날짜에 월에 20을 더한 날짜를 출력하라.
 
SELECT DATEADD(dd,100,GETDATE())
2017-10-08 오후 5:23:15

오늘부터 100일 후의 날짜를 출력하라.

6.  DATEDIFF() 함수     

DATEDIFF함수는 두 날짜사이의 날짜형식에 지정된 부분을 돌려줍니다.
형식: DATEDIFF(날짜형식, 시작 날자, 끝 날짜)


SELECT DATEDIFF(dd,GETDATE(),'3000.1.1')
358853

현재날짜와 3000.1.1일 사이의 일수는 얼마일까.??

SELECT DATEDIFF(MM,GETDATE(),'2003.1.1')
-173

현재날짜와 2003.1.1일 사이의 월수는 얼마일까.??

7. DATENAME() 함수     

DATENAME함수는 지정한 날짜의 날자형식의 이름을 돌려줍니다.
형식: DATENAME(날짜형식, 날짜)    

SELECT DATENAME(mm,GETDATE())
06
SELECT DATENAME(dd,GETDATE())
30
SELECT DATENAME(dw,GETDATE())
금요일
  

하루전날 비교하는 쿼리문 예제 입니다. (디비날짜와 오늘날짜와의 차이 계산법)

select * Table where convert(int, stock_date,112)<=convert(int, convert(char(8), DATEADD(dd,-1,GETDATE()) , 112))

 
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.