본문 바로가기
DB/Mssql

mssql 시간 타입 과 default 값으로 현재 시간 넣는 방법

by 새로운 도전을 위한 한걸음 2015. 5. 10.

DB에 시간 타입으로 데이타를 삽입 할때 사용

 

create table test11
(   

       t_no int,
      lastmodified datetime not null default getdate()
)

insert into test11(t_no) values(1); 데이터 삽입

select * from test11;    확인 .

 

/***날짜 시간형으로 들어간 것을 변환 시키는 방법 .. ***/  오라클의 to_char(sysdate,'yyyy-MM-dd') <- 이거와 비슷한 것

SELECT Day(lastmodified) from test11;

 

convert명령어를 사용하여 데이트 형태를 바꾸기 ..  

select convert(varchar(30),getdate(),101) 이 문구로 테스트하시고요..

               

convert(변환종류,컬럼명,변환스타일)

            char,int...등

  컬럼은 datetime이어야 합니다...

 

마지막에 101은 변환 타입입니다...

 

101을 넣으시면 mm/dd/yy

102     yy.mm.dd

103    dd/mm/yy

104    dd.mm.yy

105   dd-mm-yy

106   dd mon yy

107  Mon dd, yy

108  hh:mm:ss

109  mon dd yyyy hh:mi:ss:mmmAM(또는 PM)

110  mm-dd-yy

111  yy/mm/dd

112  yymmdd

 

.... 이러한식으로 사용이 변환이 가능합니다.

 

SELECT Day(getdate())      -- 일 반환

     SELECT Month(getdate())   -- 월 반환

       SELECT Year(getdate())           --  년 반환

 

※ 날짜및 시간함수 정리

 

getdate()  >> 오늘 날짜를 반환(datetime)

 

1> DateAdd()   - 지정한 날짜에 일정 간격을 + 새 일정을 반환

예) SELECT Dateadd(s,2000,getdate())

 

2> Datediff()  - 지정한 두 날짜의 간의 겹치는 날짜 및 시간 범위 반환

예)SELECT DateDiff(d,getdate(),(getdate()+31))

 

3> Datename() -지정한 날짜에 특정 날짜부분을 나타내는 문자열을 반환

예) SELECT Datename(d,getdate())

 

4> Datepart() -지정한 날짜에 특정 날짜부분을 나타내는 정수를  반환

예) SELECT Datepart(d,getdate())

 

>> Datename , Datepart 은 결과 값은 같으나 반환 값의 타입이 틀림.

 

5> Day() -지정한 날짜에 일 부분을 나타내는 정수를  반환

예) SELECT Day(getdate())      -- 일 반환

     SELECT Month(getdate())   -- 월 반환

       SELECT Year(getdate())           --  년 반환

 

6> Getutcdate() -현재 UTC 시간을 나타내는 datetime 값을 반환

예) SELECT Getutcdate()