【问题标题】:How to get different times in the same query session using getdate()?如何使用 getdate() 在同一个查询会话中获取不同的时间?
【发布时间】:2016-07-08 15:07:56
【问题描述】:

我希望每个 GETDATE() 语句的日期时间不同,但它显示相同的值。

DECLARE @TimeStampEnd datetime2

SET @TimeStampEnd =  GETDATE()
SELECT 'Time  ' + CAST (@TimeStampEnd as varchar)

SET @TimeStampEnd =  GETDATE()
SELECT 'Time  ' + CAST (@TimeStampEnd as varchar)

【问题讨论】:

  • SYSDATETIME() 更精确,但 SQL 仍然可以在很短的时间内完成很多工作:)
  • 戴夫,将 GETDATE() 更改为 SYSDATETIME() 仍然返回相同的值。
  • 除了WAITFOR,您还可以使用DATEADD(s,3,GETDATE())SYSDATETIME()

标签: sql-server tsql


【解决方案1】:

系统时钟的分辨率只有大约一个。 3 毫秒。如果两次 GetDate() 调用之间的命令花费的时间少于此时间,那么它们可能会返回相同的时间。

如果你想确保它们不同,那么你需要花费更长的时间,通过使用更多或更慢的命令,或者只是添加一个 WaitFor 命令。

【讨论】:

    【解决方案2】:

    如果您不介意在此处添加一些延迟,可以使用waitfor

    waitfor delay '00:00:00.003';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多