0

我的数据库中有一个datetime字段,我需要获取自纪元以来的毫秒数。我可以在客户端应用程序上计算它,但我的问题是是否有办法从 SQL 服务器获取它。

我试过这个:

select cast(dateField as bigint) from table where id = 0

...但我得到一个 5 位数字,这不可能是我想要的。

这有可能吗?

4

4 回答 4

1

尝试这样的事情(对于系统日期 - 修改以将您的日期放在那里):

SELECT cast(DATEDIFF(s, '19700101', GETDATE()) as bigint) * 1000
于 2013-11-14T14:59:14.733 回答
0
select CONVERT (varchar(20), tdate,113) from tblTrainingMaster 

代替

 select CONVERT (varchar(20), tdate,120) from tblTrainingMaster 
于 2013-11-14T15:08:16.873 回答
0

我试过... cast(datefield as bigint) ...但我得到一个五位数

Sql Server 将日期时间存储为 8 字节浮点值,其中整数部分是天数,小数部分是小数天数。转换为任何整数类型都会给你几天,而不是毫秒。

我需要获取自纪元以来的毫秒数

你的时代是什么?Sql Server 使用 1/1/1900(它将存储在此之前日期的负值),但许多人期望 1/1/1970。

考虑到所有这些,您需要以下之一:

DATEDIFF(millisecond, '19700101', datefield)
DATEDIFF(millisecond, 0, datefield)
于 2013-11-14T15:02:25.277 回答
0

尝试

选择 DATEPART(ms, datefield) FROM table where id=0

http://msdn.microsoft.com/en-us/library/ms174420.aspx

于 2013-11-14T14:56:18.457 回答