在本文中,我們將學習一個 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;
輸出:
相關用法
- SQL Datetime轉Date用法及代碼示例
- SQL Datetime轉String用法及代碼示例
- SQL Date轉Datetime用法及代碼示例
- SQL DROP和TRUNCATE的區別用法及代碼示例
- SQL NUMERIC轉NVARCHAR用法及代碼示例
- SQL LTRIM()用法及代碼示例
- SQL UPPER()用法及代碼示例
- SQL RTRIM()用法及代碼示例
- SQL FLOAT轉NVARCHAR用法及代碼示例
- SQL Epoch Time轉Date用法及代碼示例
- SQL VARCHAR轉INT用法及代碼示例
- SQL NOT用法及代碼示例
- SQL IN用法及代碼示例
- SQL NOT EQUAL用法及代碼示例
- SQL IS NOT NULL用法及代碼示例
- SQL IS NULL用法及代碼示例
- SQL LIKE用法及代碼示例
- SQL Server CHARINDEX()用法及代碼示例
- SQL Server DIFFERENCE()用法及代碼示例
- SQL Server IIF()用法及代碼示例
- SQL Server ASCII()用法及代碼示例
- SQL Server LOG()用法及代碼示例
- SQL Server LOG10()用法及代碼示例
- SQL Server ATN2()用法及代碼示例
注:本文由純淨天空篩選整理自pranavhfs1大神的英文原創作品 SQL Query to Convert Datetime to Epoch。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。