我的数据库中有一个datetime
字段,我需要获得自纪元以来的毫秒数。我可以在客户端应用程序上计算,但我的问题是,是否有办法从SQL服务器获取它。
我试过了:
select cast(dateField as bigint) from table where id = 0
...但我得到一个5位数的数字,这可能不是我想要的。
那可能吗?
答案 0 :(得分:1)
尝试这样的事情(系统日期 - 修改以将日期放在那里):
SELECT cast(DATEDIFF(s, '19700101', GETDATE()) as bigint) * 1000
答案 1 :(得分:0)
答案 2 :(得分:0)
我试过...施放(datefield as bigint)...但我得到一个五位数字
Sql Server将日期时间存储为8字节的浮点值,其中整数部分是整天的数,小数部分是小数天。转换为任何整数类型将为您提供数天,而不是毫秒。
我需要获得自纪元以来的毫秒数
你的时代是什么? Sql Server使用1/1/1900(它将存储此前日期的负值),但许多人期望在1970年1月1日。
考虑到所有这些,您需要以下其中一项:
DATEDIFF(millisecond, '19700101', datefield)
DATEDIFF(millisecond, 0, datefield)
答案 3 :(得分:0)
select CONVERT (varchar(20), tdate,113) from tblTrainingMaster
而不是
select CONVERT (varchar(20), tdate,120) from tblTrainingMaster