在ms sql中设置历元时间戳

在ms sql中设置历元时间戳,sql,sql-server,sql-server-2012,epoch,Sql,Sql Server,Sql Server 2012,Epoch,我试图将MS-SQL12中某个特定字段的值设置为此时的历元时间戳。现在,我使用了一个复杂的查询: UPDATE SOME_TABLE SET SOME_EPOCH_TIMESTAMP = CAST(DATEDIFF(second, '19700101', CURRENT_TIMESTAMP) AS BIGINT) * 1000 WHERE SOME_CONDITION > 0; 通过MS-SQL内置实现这一点的更好方法是什么?我认为DATEDIFF(s,'1970-01-

我试图将MS-SQL12中某个特定字段的值设置为此时的历元时间戳。现在,我使用了一个复杂的查询:

UPDATE SOME_TABLE
    SET SOME_EPOCH_TIMESTAMP = CAST(DATEDIFF(second, '19700101', CURRENT_TIMESTAMP) AS BIGINT) * 1000
    WHERE SOME_CONDITION > 0;
通过MS-SQL内置实现这一点的更好方法是什么?

我认为
DATEDIFF(s,'1970-01-01',GETUTCDATE())
是最好的方法

如果你想让代码更清晰,你可以写一个函数

CREATE FUNCTION [dbo].Epoch_TIMESTAMP ()
RETURNS BIGINT 
AS BEGIN
    RETURN DATEDIFF(s, '1970-01-01', GETUTCDATE())
END
使用将是

SELECT [dbo].Epoch_TIMESTAMP()

@mu無 很乐意帮忙:)