Chcę wydrukować GETDATE () w SQL Server 2008, potrzebuję czasu z milisekundami (służy to do debugowania - aby znaleźć czas wykonania sp)
Znajduję tę różnicę
SELECT GETDATE()
zwraca 2011-03-15 18: 43: 44.100print GETDATE()
zwraca 15 marca 2011 6:44 PM
Myślę, że SQL Server automatycznie typecast w funkcji drukowania.
Muszę wydrukować datę w ten sposób 2011-03-15 18:43:44.100
Dzięki za pomoc.
sql
sql-server
sql-server-2008
datetime
getdate
Ramakrishnan
źródło
źródło
SELECT CONVERT( VARCHAR(24), GETDATE(), 113)
AKTUALIZACJA
źródło
Jeśli Twoja wersja SQL Server obsługuje funkcję FORMAT, możesz to zrobić w następujący sposób:
select format(getdate(), 'yyyy-MM-dd HH:mm:ss.fff')
źródło
te 2 są takie same:
źródło
Spróbuj obserwować
DECLARE @formatted_datetime char(23) SET @formatted_datetime = CONVERT(char(23), GETDATE(), 121) print @formatted_datetime
źródło
Jest to odpowiednik
new Date().getTime()
w JavaScript:Użyj poniższej instrukcji, aby uzyskać czas w sekundach.
SELECT cast(DATEDIFF(s, '1970-01-01 00:00:00.000', '2016-12-09 16:22:17.897' ) as bigint)
Użyj poniższej instrukcji, aby uzyskać czas w milisekundach.
SELECT cast(DATEDIFF(s, '1970-01-01 00:00:00.000', '2016-12-09 16:22:17.897' ) as bigint) * 1000
źródło
Utwórz funkcję o zwracanym formacie rrrr-mm-gg 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
Przykład
select fn_retornaFecha(getdate())
a wynik to: 2016-12-21 10: 12: 50.123
źródło