Как печатать GETDATE() в SQL Server с миллисекундами во времени?
Я хочу напечатать GETDATE() в SQL Server 2008, мне нужно время с миллисекундами (это для целей отладки - чтобы найти время выполнения sp)
Я нахожу эту разницу
SELECT GETDATE()
возвращает 2011-03-15 18: 43: 44.100
-
print GETDATE()
возвращает 15 марта 2011 г. 18:44
Я думаю, что SQL Server автоматически настраивает тип в функции печати.
Мне нужно напечатать дату, подобную этой 2011-03-15 18:43:44.100
Спасибо за вашу помощь.
Ответы
Ответ 1
Во-первых, вы, вероятно, должны использовать SYSDATETIME()
, если вы ищете более высокую точность.
Чтобы отформатировать ваши данные в миллисекундах, попробуйте CONVERT(varchar, SYSDATETIME(), 121)
.
Для других форматов, проверьте страницу MSDN на CAST
и CONVERT
.
Ответ 2
SELECT CONVERT( VARCHAR(24), GETDATE(), 113)
UPDATE
PRINT (CONVERT( VARCHAR(24), GETDATE(), 121))
Ответ 3
Если ваша версия SQL Server поддерживает функцию FORMAT, вы можете сделать это следующим образом:
select format(getdate(), 'yyyy-MM-dd HH:mm:ss.fff')
Ответ 4
эти 2 одинаковы:
Print CAST(GETDATE() as Datetime2 (3) )
PRINT (CONVERT( VARCHAR(24), GETDATE(), 121))
![enter image description here]()
Ответ 5
Попробуйте следовать
DECLARE @formatted_datetime char(23)
SET @formatted_datetime = CONVERT(char(23), GETDATE(), 121)
print @formatted_datetime
Ответ 6
Это эквивалентно 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
Ответ 7
Создайте функцию с возвратным форматом 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