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