📜  如何在 SQL 中将纪元时间转换为日期?

📅  最后修改于: 2022-05-13 01:55:51.036000             🧑  作者: Mango

如何在 SQL 中将纪元时间转换为日期?

SQL Server 中的 DATEADD()函数用于将时间或日期间隔与指定日期相加,然后返回修改后的日期。 DATEADD() 的一些特性如下:

  • 此函数用于将时间或日期间隔与指定日期相加。
  • 此函数属于日期功能。
  • 该函数接受三个参数,即时间间隔、数字和日期。
  • 此函数还可以在间隔部分中包含时间。

在这里,我们将看到如何使用 DATEADD()函数在 SQL Server 中将纪元时间转换为日期。出于演示的目的,我们将在名为“geeks”的数据库中创建一个 EpochDB 表。

第 1 步:创建数据库

使用以下 SQL 语句创建一个名为 geeks 的数据库:

CREATE DATABASE geeks;

第 2 步:使用数据库

使用以下 SQL 语句将数据库上下文切换到极客:

USE geeks;

第三步:表定义

我们的极客数据库中有以下 EpochDB。

CREATE TABLE EpochDOB (
Id INT,
Person VARCHAR(50), 
Dt BIGINT 
);

第 4 步:将数据添加到表中

使用以下语句将数据添加到 EpochDB 表:

INSERT INTO EpochDOB VALUES
(1,'Anuj',848698632000),
(2,'Harsh',957532509000),
(3,'Ravi',1547455833000);

第 5 步:要验证表的内容,请使用以下语句

SELECT * FROM EpochDOB;

第 6 步:结果

因为我们的 Epoch 时间是以毫秒为单位指定的,所以我们可以将其转换为秒。要将毫秒转换为秒,首先将毫秒计数除以 1000。稍后,我们使用 DATEADD() 将自纪元(即 1970 年 1 月 1 日)以来的秒数相加,并将结果转换为检索自纪元以来的日期。

SELECT *, CAST(DATEADD(SECOND, Dt/1000
 ,'1970/1/1') AS DATE) DOBDate
FROM EpochDOB;