dateadd
-- 월의 마지막 날
select dateadd(month,1,getdate())-day(getdate())
-- 월의 첫째날
select dateadd(day,-(day(getdate()-1)), getdate())
-- 월의 13개월전 첫째날
select dateadd(month,-12,getdate())-(day(getdate())-1)
-- 1일 더하기
select dateadd(day,1,getdate())
-- 1월 더하기
select dateadd(month,1,getdate())
-- 1년 더하기
select dateadd(year,1,getdate())
datediff
datediff( 시간단위구분자, 시작시간, 종료시간 )
getdate()+1 은 현재시간에서 1일을 더하는 함수이다.
현재 시간이 2012-12-20 11:50:11 이면, getdate()+1 은 2012-12-21 11:50:11 이 된다
각각 분단위, 초단위, 시간단위, 일단위, 월단위, 년단위로 구한다.
select DATEDIFF ( mi , getdate() , getdate()+1 ) ==> 1440 분 (1일)
select DATEDIFF ( s , getdate() , getdate()+1 ) ==> 86400 초 (1일)
select DATEDIFF ( hour , getdate() , getdate()+1 ) ==> 24 시간 (1일)
select DATEDIFF ( day , getdate() , getdate()+1 ) ==> 1 일 (1일)
select DATEDIFF ( month , getdate() , getdate()+31 ) ==> 1 개월 (31일)
select DATEDIFF ( year , getdate() , getdate()+730 ) ==> 2 년 (730일)
http://blog.daum.net/2112990/5450912
날짜 관련 함수입니다. 쿼리문 오른쪽은 쿼리문에 대한 값입니다.
1. GETDATE() 함수
시스템의 날짜를 리턴합니다.
SELECT GETDATE() 2002-01-23 오후 9:06:52
SELECT GETDATE()+100 2002-05-03 오후 9:06:52
2. CONVERT() 함수
결과값의 데이타 타입을 변환시킵니다.
SELECT CONVERT(varchar(30), GETDATE(),100) Jan 23 2002 9:06PM
SELECT CONVERT(varchar(30), GETDATE(),101) 01/23/2002
SELECT CONVERT(varchar(30), GETDATE(),102) 2002.01.23
SELECT CONVERT(varchar(30), GETDATE(),103) 23/01/2002
SELECT CONVERT(varchar(30), GETDATE(),104) 23.01.2002
SELECT CONVERT(varchar(30), GETDATE(),105) 23-01-2002
SELECT CONVERT(varchar(30), GETDATE(),106) 23 Jan 2002
SELECT CONVERT(varchar(30), GETDATE(),107) Jan 23, 2002
SELECT CONVERT(varchar(30), GETDATE(),108) 21:06:52
SELECT CONVERT(varchar(30), GETDATE(),109) Jan 23 2002 9:06:52:287PM
SELECT CONVERT(varchar(30), GETDATE(),110) 01-23-2002
SELECT CONVERT(varchar(30), GETDATE(),111) 2002/01/23
SELECT CONVERT(varchar(30), GETDATE(),112) 20020123
SELECT CONVERT(varchar(30), GETDATE(),113) 23 Jan 2002 21:06:52:317
SELECT CONVERT(varchar(30), GETDATE(),114) 21:06:52:317
3. DATEPART() 함수
날짜에서 지정한 날자형식부분만 추출해줍니다.
형식 : DATEPART(날짜형식, 날짜)
SELECT DATEPART(yy, GETDATE()) 2002
SELECT DATEPART(mm, GETDATE()) 1
SELECT DATEPART(dd, GETDATE()) 23
SELECT DATEPART(hour, GETDATE()) 21
SELECT DATEPART(mi, GETDATE()) 6
SELECT DATEPART(ss, GETDATE()) 52
SELECT DATEPART(dw, GETDATE()) 4
위 내용은 년/월/일/시/분/초/요일을 숫자로 보여준 예제입니다.
4. YEAR() , MONTH() , DAY() 함수
해당 년,월,일을 각각 뽑아줍니다.
형식 : YEAR(날짜), MONTH(날짜), DAY(날짜)
SELECT YEAR(GETDATE()) 2002
SELECT MONTH(GETDATE()) 1
SELECT DAY(GETDATE()) 23
5. DATEADD() 함수
DATEADD함수는 날짜에 지정한 만큼을 더합니다.
형식 : DATEADD(날짜형식, 더할 값, 날짜)
SELECT DATEADD(mm,20,GETDATE()) 2003-09-23 오후 9:06:52
현재날짜에 월에 20을 더한 날짜를 출력하라.
SELECT DATEADD(dd,100,GETDATE()) 2002-05-03 오후 9:06:52
오늘부터 100일 후의 날짜를 출력하라.
6. DATEDIFF() 함수
DATEDIFF함수는 두 날짜사이의 날짜형식에 지정된 부분을 돌려줍니다.
형식: DATEDIFF(날짜형식, 시작 날자, 끝 날짜)
SELECT DATEDIFF(dd,GETDATE(),'3000.1.1') 364490
현재날짜와 3000.1.1일 사이의 일수는 얼마일까.??
SELECT DATEDIFF(MM,GETDATE(),'2003.1.1') 12
현재날짜와 2003.1.1일 사이의 월수는 얼마일까.??
7. DATENAME() 함수
DATENAME함수는 지정한 날짜의 날자형식의 이름을 돌려줍니다.
형식: DATENAME(날짜형식, 날짜)
SELECT DATENAME(mm,GETDATE()) January
SELECT DATENAME(dd,GETDATE()) 23
SELECT DATENAME(dw,GETDATE()) Wednesday
'마루아라는 개발쟁이 > MS.SQL' 카테고리의 다른 글
SQL Server에서 저장 프로시저 내용 검색 (0) | 2024.08.14 |
---|---|
더 빠른 SQL 쿼리를 위한 21가지 데이터베이스 튜닝 규칙 (0) | 2022.12.06 |
MS-SQL 쿼리를 이용하여 문자열을 배열로 전환하기 (0) | 2022.12.06 |
어제, 오늘 , 내일 날짜 (0) | 2022.12.06 |
SQL Injection 해킹 에 관해.. (0) | 2022.12.05 |