How to print GETDATE() in SQL Server with milliseconds in time?

前端 未结 7 559
情书的邮戳
情书的邮戳 2021-02-03 16:49

I want to print GETDATE() in SQL Server 2008, I need the time with milliseconds (this is for debugging purpose - to find sp\'s execution time )

I find this Difference

相关标签:
7条回答
  • 2021-02-03 16:58

    Create a function with return format 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
    

    Example

    select fn_retornaFecha(getdate())
    

    and the result is: 2016-12-21 10:12:50.123

    0 讨论(0)
  • 2021-02-03 17:04

    these 2 are the same:

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

    0 讨论(0)
  • 2021-02-03 17:05

    If your SQL Server version supports the function FORMAT you could do it like this:

    select format(getdate(), 'yyyy-MM-dd HH:mm:ss.fff')
    
    0 讨论(0)
  • 2021-02-03 17:07
    SELECT CONVERT( VARCHAR(24), GETDATE(), 113)
    

    UPDATE

    PRINT (CONVERT( VARCHAR(24), GETDATE(), 121))
    
    0 讨论(0)
  • 2021-02-03 17:10

    Try Following

    DECLARE @formatted_datetime char(23)
    SET @formatted_datetime = CONVERT(char(23), GETDATE(), 121)
    print @formatted_datetime
    
    0 讨论(0)
  • 2021-02-03 17:18

    This is equivalent to new Date().getTime() in JavaScript :

    Use the below statement to get the time in seconds.

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

    Use the below statement to get the time in milliseconds.

    SELECT  cast(DATEDIFF(s, '1970-01-01 00:00:00.000', '2016-12-09 16:22:17.897' ) as bigint)  * 1000
    
    0 讨论(0)
提交回复
热议问题