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

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

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

在本文中,我们将学习一个 SQL Query 来将 Datetime 数据类型的数据转换为 Epoch 数据类型的数据。因此,Epoch 数据基本上是一个 BIGINT 数字,它定义了指定的 DateTime 和 1970 年 1 月 1 日 00:00:00 之间经过的秒数。要执行这些查询,我们首先需要将数据添加到“日期时间”数据类型的表中,然后使用DATEDIFF()函数以秒为单位查找差异。最后,我们将使用CAST()函数来获取 BIGINT 值。

日期判断():

SQL 中的此函数返回已指定为参数的两个 Datetime 值之间的时间差。还必须指定对象之间的差异类型,例如年、分钟、小时等。

投掷():

SQL 中的 CAST()函数将表达式返回的值转换为指定的数据类型。

第 1 步:创建 SQL 数据库

我们首先需要创建一个数据库来处理 SQL 中的表和数据。为此,使用以下查询:

查询

CREATE DATABASE sample_db;

第 2 步:指定创建的数据库的用途

我们需要开始使用创建的数据库。为此,将使用的查询是:

查询

USE sample_db;

第 3 步:创建包含 DATETIME 列的表

我们需要创建一个表,其中至少有一列具有指定的 DATETIME 数据类型。我们将使用以下查询:

查询

CREATE TABLE sample_table(valuesDatetime 
DATETIME);

第 4 步:将值插入数据库

要将“Datetime”值转换为 Epoch 值,我们需要将它们添加到创建的表中。对于此操作,将使用以下查询:

查询

INSERT INTO sample_table(valuesDatetime)
VALUES
('20210115 08:15:32 AM'),
('20011012 01:23:11 PM'),
('20060524 07:16:45 PM');

第 5 步:获取与 Datetime 值对应的 epoch 值

我们需要将数据从一种数据类型转换为另一种数据类型,所以首先,我们将使用 SQL 中的“ SELECT命令”选择我们的数据。然后,我们将从 valuesDatetime 列中选择的数据作为参数传递给 DATEDIFF()函数。 DATEDIFF()函数的语法是:

Syntax : DATEDIFF(part,start_datetime,end_datetime)
Parameters : 
part : This is the unit in which the difference between the Datetime objects is returned. 
start_datetime : Initial Datetime object
end_datetime : Final Datetime object
Returns : Difference between start_datetime and end_datetime in the unit defined in part parameter.

为了获得纪元时间,我们将start_endtime定义为:'1970-01-01 00:00:00' 并将我们的部分参数定义为 s(以秒为单位获取纪元时间)。之后,我们使用CAST()将结果转换为 BIGINT 数据类型。

语法

CAST( AS )

查询

SELECT CAST(DATEDIFF(s,
'1970-01-01 00:00:00',
valuesDatetime)
AS BIGINT)
FROM sample_table;

输出