【发布时间】:2019-08-27 11:31:55
【问题描述】:
我有一个 SQL 查询返回 x 的值,它是一个时间戳,映射到类型为 long 的 C# 对象:
SELECT DATEDIFF(second, { d '1970-01-01'}, dateCompleted) AS x
上述语句有效。但是,我需要获取时间戳以以毫秒而不是秒为单位返回值。在 SQL Server 2016 中,我可以这样做:
SELECT DATEDIFF_BIG(millisecond, { d '1970-01-01'}, dateCompleted) AS x
...效果很好。但是,我被困在 SQL Server 2008 R2 上。
我可以返回这些值并在 C# 中进行一些后处理以将 x 乘以 1000,但我想知道是否有办法在查询本身中处理这个问题。我尝试了一个简单的乘法,但会产生 算术溢出错误:
SELECT DATEDIFF(second, { d '1970-01-01'}, dateCompleted) * 1000 AS x
谁能建议如何做到这一点?
谢谢。
【问题讨论】:
-
* 1000.0 AS x
标签: sql sql-server date sql-server-2008-r2 timestamp