Установите метку времени эпохи в мс-квл - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь установить значение определенного поля в 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?

1 Ответ

0 голосов
/ 17 сентября 2018

Я думаю, 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()

sqlfiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...