【问题标题】:How to print GETDATE() in SQL Server with milliseconds in time?如何以毫秒的时间在 SQL Server 中打印 GETDATE()?
【发布时间】:2011-07-15 19:04:13
【问题描述】:

我想在 SQL Server 2008 中打印GETDATE(),我需要以毫秒为单位的时间(这是出于调试目的 - 查找 sp 的执行时间)

我发现了这个差异

  • SELECT GETDATE() 返回 2011-03-15 18:43:44.100
  • print GETDATE() 返回 2011 年 3 月 15 日下午 6:44

我认为 SQL Server 会在打印功能中自动进行类型转换。

我需要像这样打印日期2011-03-15 18:43:44.100

感谢您的帮助。

【问题讨论】:

    标签: sql sql-server sql-server-2008 datetime getdate


    【解决方案1】:
    SELECT CONVERT( VARCHAR(24), GETDATE(), 113)
    

    更新

    PRINT (CONVERT( VARCHAR(24), GETDATE(), 121))
    

    【讨论】:

      【解决方案2】:

      首先,如果您希望获得更高的精度,您可能应该使用SYSDATETIME()

      要以毫秒为单位格式化数据,请尝试CONVERT(varchar, SYSDATETIME(), 121)

      对于其他格式,请查看MSDN page on CAST and CONVERT

      【讨论】:

      • Print CAST(GETDATE() as Datetime2(7)) 这也行,谢谢你的回答。
      • PRINT CAST(SYSDATETIME() AS NVARCHAR(200)) 就像一个魅力
      【解决方案3】:

      尝试关注

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

      【讨论】:

        【解决方案4】:

        这两个是一样的:

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

        【讨论】:

          【解决方案5】:

          如果你的 SQL Server 版本支持 FORMAT 函数,你可以这样做:

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

          【讨论】:

            【解决方案6】:

            这相当于 JavaScript 中的new Date().getTime()

            使用以下语句以秒为单位获取时间。

            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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2013-04-22
                • 2013-10-31
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多