📜  将日期时间转换为纪元的 SQL 查询(1)

📅  最后修改于: 2023-12-03 15:25:20.446000             🧑  作者: Mango

将日期时间转换为纪元的 SQL 查询

在日常的开发中,我们有时需要将日期时间转换成纪元时间(Epoch Time),也就是UNIX时间戳。UNIX时间戳是从1970年1月1日00:00:00以来的秒数,通常以整数形式表示。

在SQL中,我们可以使用内置的DATEPART函数和DATEDIFF函数来实现时间转换。

日期时间转纪元

以下是将给定的日期时间转换成纪元的SQL代码片段:

DECLARE @date DATETIME = '2022-03-05 11:22:33'

SELECT DATEDIFF(second, '1970-01-01 00:00:00', @date)
  • 首先,我们将给定的日期时间赋值给变量@date
  • 然后,我们使用DATEDIFF函数计算给定日期时间与1970年1月1日00:00:00之间的秒数。
  • 最后,我们将计算得到的秒数作为结果输出。

输出结果如下:

1646466153
纪元转日期时间

以下是将给定的纪元转换成日期时间的SQL代码片段:

DECLARE @epoch BIGINT = 1646466153

SELECT DATEADD(second, @epoch, '1970-01-01 00:00:00')
  • 首先,我们将给定的纪元时间赋值给变量@epoch
  • 然后,我们使用DATEADD函数计算从1970年1月1日00:00:00开始的秒数,得到对应的日期时间。
  • 最后,我们将计算得到的日期时间作为结果输出。

输出结果如下:

2022-03-05 11:22:33.000
总结

通过使用SQL中的DATEPART函数和DATEDIFF函数,我们可以轻松地将日期时间转换成纪元时间,也可以将纪元时间转换成日期时间。这在各种场景中都很有用,比如在处理日志数据、时间序列数据等时。