밀리 초 단위로 SQL Server에서 GETDATE ()를 인쇄하는 방법은 무엇입니까?


95

SQL Server 2008에서 GETDATE () 를 인쇄하고 싶습니다. 밀리 초의 시간이 필요합니다 (이것은 디버깅 목적으로 sp의 실행 시간을 찾는 것입니다).

나는이 차이를 발견

  • SELECT GETDATE()2011-03-15 18 : 43 : 44.100을 반환합니다 .
  • print GETDATE()2011 년 3 월 15 일 6:44 PM 반환

SQL Server가 인쇄 기능에서 자동으로 타입 캐스트한다고 생각합니다.

날짜를 이렇게 인쇄해야합니다 2011-03-15 18:43:44.100

당신의 도움을 주셔서 감사합니다.

답변:


113

첫째, SYSDATETIME()더 많은 정밀도를 찾고 있다면 아마도 사용 하는 것이 좋습니다.

밀리 초로 데이터를 형식화하려면을 시도하십시오 CONVERT(varchar, SYSDATETIME(), 121).

다른 형식 에 대해서는 CASTCONVERTMSDN 페이지를 확인 하십시오 .


3
Print CAST (GETDATE () as Datetime2 (7)) 이것도 작동합니다. 답변 해 주셔서 감사합니다.
Ramakrishnan 2011 년

2
인쇄 CAST는 (SYSDATETIME () AS NVARCHAR (200)) 매력처럼 작동
가브리엘 에스피 노자


33

SQL Server 버전이 FORMAT 함수를 지원하는 경우 다음과 같이 할 수 있습니다.

select format(getdate(), 'yyyy-MM-dd HH:mm:ss.fff')


1

팔로우하기

DECLARE @formatted_datetime char(23)
SET @formatted_datetime = CONVERT(char(23), GETDATE(), 121)
print @formatted_datetime

1

이것은 new Date().getTime()JavaScript에서 와 같습니다 .

시간을 초 단위로 얻으려면 아래 문을 사용하십시오.

SELECT  cast(DATEDIFF(s, '1970-01-01 00:00:00.000', '2016-12-09 16:22:17.897' ) as bigint)

밀리 초 단위로 시간을 얻으려면 아래 문을 사용하십시오.

SELECT  cast(DATEDIFF(s, '1970-01-01 00:00:00.000', '2016-12-09 16:22:17.897' ) as bigint)  * 1000

1

반환 형식이 yyyy-mm-hh hh : mi : ss.sss 인 함수 생성

create function fn_retornaFecha (@i_fecha datetime)
returns varchar(23)
as
begin
declare 
@w_fecha varchar(23),
@w_anio  varchar(4),
@w_mes   varchar(2),
@w_dia   varchar(2),
@w_hh    varchar(2),
@w_nn    varchar(2),
@w_ss    varchar(2),
@w_sss   varchar(3)

select @w_fecha = null

if ltrim(rtrim(@i_fecha)) is not null 
begin
   select
   @w_anio = replicate('0',4-char_length( convert(varchar(4), year(@i_fecha)) )) + convert(varchar(4), year(@i_fecha)),
   @w_mes  = replicate('0',2-char_length( convert(varchar(2),month(@i_fecha)) )) + convert(varchar(2),month(@i_fecha)),
   @w_dia  = replicate('0',2-char_length( convert(varchar(2),  day(@i_fecha)) )) + convert(varchar(2),  day(@i_fecha))  ,
   @w_hh   = replicate('0',2-char_length( convert(varchar(2),datepart( hh, @i_fecha ) ) )) + convert(varchar(2),datepart( hh, @i_fecha ) ),
   @w_nn   = replicate('0',2-char_length( convert(varchar(2),datepart( mi, @i_fecha ) ) )) + convert(varchar(2),datepart( mi, @i_fecha ) ),
   @w_ss   = replicate('0',2-char_length( convert(varchar(2),datepart( ss, @i_fecha ) ) )) + convert(varchar(2),datepart( ss, @i_fecha ) ),
   @w_sss  = convert(varchar(3),datepart( ms, @i_fecha ) ) + replicate('0',3-DATALENGTH( convert(varchar(3),datepart( ms, @i_fecha ) )  ))


   select @w_fecha = @w_anio + '-' + @w_mes + '-' + @w_dia + ' ' + @w_hh + ':' + @w_nn + ':' + @w_ss + '.' + @w_sss
end

return @w_fecha

end
go

select fn_retornaFecha(getdate())

결과는 다음과 같습니다. 2016-12-21 10 : 12 : 50.123

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.