當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。