sql - 在 ms-sql 中设置 Epoch 时间戳
问题描述
我正在尝试将 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 内置函数执行此操作的更好方法是什么?
解决方案
我认为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()
推荐阅读
- java - 如何在 android 中使用 SmsManager 将图像文件附加到文本消息?
- sql - 根据 Sql 查询中的给定范围拆分数字
- neo4j - 在 Neo4J 中获得无与伦比的结果值
- c# - 获取不同 HttpContext 的端点
- c# - 将 msbuild 任务作为 nuget 发送
- snowflake-cloud-data-platform - 嵌套窗口函数在雪花中不起作用
- javascript - d3 气泡图定位和侧气泡中的文本
- android - 在 Chrome CustomTab 中打开 Google Form Url 会重定向到安装了 Chrome 浏览器的设备
- botframework - 如何将整个对话从机器人保存到存储中?
- android - 使用 API 26 调用 - API 23 Android 中的 transientExtras