델파이/MS-SQL

MS-SQL 날자 관련 스크립트

지병철 2010. 11. 25. 13:51

== 어디서 퍼 왔는지 기억이 안남.. ㅈㅅ..

[2k] 특정일(자) 구하기 및 일자의 문자 변환
SQL Server/TSQL 2008/09/07 00:18 posted by 디비랑
/**********************************************************************************************
-- Title : [2k] 특정일(자) 구하기 및 일자의 문자 변환
-- Reference : 웹검색
-- Key word : dateadd, datepart, datediff, getdate
**********************************************************************************************/

--현재주의 월요일 구하기
select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) "현재주의 월요일"

--현재해의 첫째날 구하기
select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) "현재해의 첫째날"

--현재분기의 첫째날 구하기
select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) "현재분기의 첫째날"

--현재날의 자정주의 구하기
select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0) "현재날의 자정주의?"

--지난달의 마지막날 구하기
select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()  ), 0)) "지난달의 마지막날"

--지난해의 마지막날 구하기
select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()  ), 0)) "지난해의 마지막날"

--현재달의 마지막날 구하기
select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate()  )+1, 0)) "현재달의 마지막날"

--현재해의 마지막날 구하기
select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()  )+1, 0)) "현재해의 마지막날"

--현재달의 첫째주 월요일 구하기
select DATEADD(wk, DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate())), 0) "현재달의 첫째주 월요일"

--SQL 다음주 오늘은 몇 일인가?
SELECT DATEADD(dd, 7, GETDATE()), DATEADD(mm,-1,'20000101')

--SQL 올해는 몇 시간일까?  결혼 며칠째인가?
SELECT DATEDIFF(hh,'20000101','20010101'),DATEDIFF(dd,'19951104',GETDATE())

--SQL DATEPART 함수의 사용
SELECT DATEPART(yy, GETDATE()), DATEPART(mm, GETDATE()), DATEPART(dd, GETDATE())

--SQL 오늘은 몇 분기에 속하는가? , 올해의 몇 일째인가?, 올해의 몇 주째인가?, 무슨 요일인가?
SELECT DATEPART(qq, GETDATE()) "몇분기", DATEPART(dy, GETDATE()) "몇일"
      , DATEPART(ww, GETDATE()) "몇주", DATEPART(dw, GETDATE()) "무슨요일"

--월 시작일과 마지막날 구하기
DECLARE @xDate datetime
SET @xDate = '20000203'
IF ISDATE(@xDate)= 0
     BEGIN
           RAISERROR( '작업일시를 확인하여 주십시오.', 10, 1)
           RETURN
     END
SELECT CONVERT(datetime, CONVERT(char(6),@xDate,112)+'01', 112),
DATEADD(dd,-1,DATEADD(mm,1,@xDate-Day(@xDate)))
GO

-- SQL 날짜를 문자열로 변환
SELECT GETDATE(),CONVERT(char(10),GETDATE(),12), CONVERT(char(10),GETDATE(),112)
GO

-- SQL 날짜를 문자열로 변환
SELECT CONVERT(char(10),GETDATE(),102), CONVERT(varchar(20),GETDATE(),20)
GO

-- SQL 문자열을 날짜 및 시간 데이터형으로 변환
SELECT CONVERT(smalldatetime,'20000723')+1, CONVERT(smalldatetime,'00.07.23',2)+1
GO

-- SQL 년도2자리 사용 시 주의 사항은 49년 까지는 2000 년대로 50년부터는 1900 년대로 변환된다.
SELECT CONVERT(datetime,'490101'), CONVERT(datetime,'500101')

'델파이 > MS-SQL' 카테고리의 다른 글

ms sql 날짜 함수  (0) 2011.01.13
MS SQL 인덱스 정보 / 생성과 관리  (0) 2010.12.17
MS SQL 2005 유지관리계획 만들기 실패 ?  (0) 2010.12.08
MS SQL DB 불러오기  (0) 2010.12.08
MS SQL DB Log 파일 지우기  (0) 2010.12.08