Sql server 将MSSQL日期戳转换为UNIX的BIGINT

Sql server 将MSSQL日期戳转换为UNIX的BIGINT,sql-server,unix,timestamp,bigint,Sql Server,Unix,Timestamp,Bigint,我一直在为一些我不能完全理解的事情而烦恼,我想知道你是否能帮忙 在我的桌子上,我有一列叫做 添加 此列显示事件或票证添加到数据库表的日期,其格式如下例所示: 2015-08-25 09:58:14.967 我想将其转换为UNIX时间戳,因此首先执行以下操作: SELECT DATEDIFF(SECOND,{d '1970-01-01'}, ADDEDDATE) AS 'UNIX DATE ADDED' FROM dbo.TABLE SELECT DATEDIFF(SECOND,{d '197

我一直在为一些我不能完全理解的事情而烦恼,我想知道你是否能帮忙

在我的桌子上,我有一列叫做

添加

此列显示事件或票证添加到数据库表的日期,其格式如下例所示:

2015-08-25 09:58:14.967
我想将其转换为UNIX时间戳,因此首先执行以下操作:

SELECT DATEDIFF(SECOND,{d '1970-01-01'}, ADDEDDATE) AS 'UNIX DATE ADDED' FROM dbo.TABLE
SELECT DATEDIFF(SECOND,{d '1970-01-01'}, ADDEDDATE) AS 'UNIX DATE ADDED',
CASE CAST(SUM('UNIX DATE ADDED' AS BIGINT) FROM dbo.TABLE
运行这个命令,我会得到整数值,比如“1147855575”。现在我明白了,为了在UNIX时间戳上实现这一点,我需要使用BIGINT进行转换,因此我编写了以下代码:

SELECT DATEDIFF(SECOND,{d '1970-01-01'}, ADDEDDATE) AS 'UNIX DATE ADDED' FROM dbo.TABLE
SELECT DATEDIFF(SECOND,{d '1970-01-01'}, ADDEDDATE) AS 'UNIX DATE ADDED',
CASE CAST(SUM('UNIX DATE ADDED' AS BIGINT) FROM dbo.TABLE
这返回了一个错误:

Msg 195,第15级,第10状态,第2行 “SUM”不是可识别的内置函数名

所以我在Stackoverflow上做了一些谷歌搜索,发现第二行我做错了,应该是这样的:

SELECT DATEDIFF(SECOND,{d '1970-01-01'}, ADDEDDATE) AS 'UNIX DATE ADDED',
CASE CAST(BIGINT,'UNIX DATE ADDED') FROM dbo.TABLE
但是,这也会失败,并显示以下消息:

味精1035,第15级,第10状态,第2行 “CAST”附近的语法不正确,应为“AS”

有人能帮我把整列整型数据转换成BIGINT for UNIX Datestamp吗?我正在使用MSSQL(SSMS 2014)。

只是:

SELECT CAST(DATEDIFF(SECOND, '1970-01-01', ADDEDDATE) AS bigint) AS 'UNIX DATE ADDED' FROM dbo.TABLE;

当您在SQL Server 2016上进行迁移时,您将能够使用

简单地
datediff(第二个,'1970-01-01',ADDEDDATE)
case,错误地放置在cast之前。可能您想要的是从dbo.TABLEAhmed Saeed中选择cast(DATEDIFF(SECOND,{d'1970-01-01'},ADDEDDATE)作为'UNIX DATE ADDED',不幸的是,您的解决方案返回的结果与原始选择DATEDIFF(SECOND,{d'1970-01-01'},ADDEDDATE)作为'UNIX DATE ADDED'完全相同,长度为10个数字。松鼠你能详细解释一下吗?