GETDATE()不返回毫秒和分钟

sak*_*kir -1 sql sql-server sql-server-2012

我想这是一个简单的问题,但我需要帮助.

declare @Date date
SET   @Date =GETDATE()
print @date
Run Code Online (Sandbox Code Playgroud)

宣言给了我结果: 2013-08-04

但我还需要几毫秒和几分钟.

我怎么能做到这一点?

Mit*_*eat 7

声明为datetime2而不是date:

declare @Date datetime2
            --^^^^^^^^^
SET   @Date = SYSDATETIME()
print @date
Run Code Online (Sandbox Code Playgroud)

参考:数据类型(Transact-SQL)

更新:替换GETDATE()SYSDATETIME()被@马丁·史密斯所提到

  • 日期没有"错误".但是所有类型日期的变量都可以存储日期! (5认同)
  • @ user2460637:这是*日期*...不是日期和时间.请参阅http://technet.microsoft.com/en-us/library/bb630352.aspx (4认同)
  • @ user2460637请注意,GETDATE()可能存在分辨率限制.在我的电脑上,我不能得到两个不同于3 MS的时间 (2认同)
  • @xanatos - 是的.`GETDATE()`返回`datetime`数据类型,每秒有300个滴答.`SYSDATETIME()`是返回`datetime2`的新选择 (2认同)