it-swarm.com.de

Wie kann man GETDATE () in Millisekunden in SQL Server drucken?

Ich möchte GETDATE() in SQL Server 2008 drucken, ich brauche die Zeit mit Millisekunden (dies ist für den Debugging-Zweck gedacht - um die Ausführungszeit von sp zu finden)

Ich finde diesen Unterschied 

  • SELECT GETDATE() Returns 2011-03-15 18: 43: 44.100  
  • print GETDATE() Returns 15. März 2011, 18:44 Uhr

Ich denke, dass SQL Server automatisch die Druckfunktionalität verwendet.

Ich muss das Datum so ausdrucken 2011-03-15 18:43:44.100

Danke für Ihre Hilfe.

75
Ramakrishnan

Erstens sollten Sie wahrscheinlich SYSDATETIME() verwenden, wenn Sie nach mehr Präzision suchen.

Um Ihre Daten mit Millisekunden zu formatieren, versuchen Sie CONVERT(varchar, SYSDATETIME(), 121).

Weitere Formate finden Sie auf der Seite MSDN unter CAST und CONVERT .

91
Adam Robinson
SELECT CONVERT( VARCHAR(24), GETDATE(), 113)

UPDATE

PRINT (CONVERT( VARCHAR(24), GETDATE(), 121))
48
Kris Ivanov

Wenn Ihre SQL Server-Version die Funktion FORMAT unterstützt, können Sie dies folgendermaßen tun:

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

diese 2 sind gleich:

Print CAST(GETDATE() as Datetime2 (3) )
PRINT (CONVERT( VARCHAR(24), GETDATE(), 121))

 enter image description here

6

Versuchen Sie folgendes

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

Erstellen Sie eine Funktion mit dem Rückkehrformat 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

Beispiel

select fn_retornaFecha(getdate())

und das Ergebnis ist: 2016-12-21 10: 12: 50.123

1
admincedep

Dies ist äquivalent zu new Date().getTime() in JavaScript: 

Verwenden Sie die folgende Anweisung, um die Zeit in Sekunden abzurufen.

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

Verwenden Sie die folgende Anweisung, um die Zeit in Millisekunden abzurufen.

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