当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


SQL Datetime转Epoch用法及代码示例


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

DATEDIFF():

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

CAST():

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

第 1 步:创建 SQL 数据库

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

询问

CREATE DATABASE sample_db;

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

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

询问:

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:获取与日期时间值对应的纪元值

我们需要将数据从一种数据类型转换为另一种数据类型,因此首先,我们将使用 SQL 中的“SELECT 命令”选择数据。然后,我们将从 valueDatetime 列中选择的数据作为参数传递给 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(<expression> AS <datatype>)

询问

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

输出:


相关用法


注:本文由纯净天空筛选整理自pranavhfs1大神的英文原创作品 SQL Query to Convert Datetime to Epoch。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。