我正在尝试将MS-SQL 12中特定字段的值设置为当时的时间戳。现在,我使用了一个复杂的查询:
UPDATE SOME_TABLE
SET SOME_EPOCH_TIMESTAMP = CAST(DATEDIFF(second, '19700101', CURRENT_TIMESTAMP) AS BIGINT) * 1000
WHERE SOME_CONDITION > 0;
通过MS-SQL内置插件实现此目的的更好方法是什么?
答案 0 :(得分:2)
我认为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()