在 ms-sql 中设置纪元时间戳
Set Epoch timestamp in ms-sql
我正在尝试将 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()
我正在尝试将 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()