在 Mysql 查詢中將時間戳欄位轉換為日期

Raymond Peter 2023年1月30日 2022年5月13日
  1. 在 MySQL 中使用日期格式轉換 Timestamp
  2. 在 MySQL 中使用 Unixtime 轉換時間戳
  3. 在 MySQL 中使用 Cast 轉換 Unixtime
在 Mysql 查詢中將時間戳欄位轉換為日期

本教程文章將向你展示如何在 MySQL 查詢中將 timestamp 欄位轉換為日期欄位。這演示瞭如何在正確查詢資料時使用格式。

在 MySQL 中使用日期格式轉換 Timestamp

TIMESTAMP 資料型別允許你註冊日期和時間。它有 19 個固定字元,可以啟用從 1970 年 1 月 1 日的第一秒到 2038 年 1 月 19 日的一系列日期,恰好是 3 小時 14 分 7 秒。

DATE_FORMAT 函式將允許你從表中獲取欄位並將其轉換為 MySQL 查詢中所需的格式。以下是操作表中的值。這記錄了工廠中任何操作事件的詳細資訊,例如停機。

|      shutdown       |
| ------------------- |
| 2021-12-31 09:45:07 |

以下是一個轉換示例,它將採用列 shutdown 並將其從預設格式 YYYY-MM-DD HH:MM:SStimestamp 轉換為格式 DD-MM 的日期-YYYY`。

CREATE TABLE operations (
  user TEXT NOT NULL, 
  shutdown TIMESTAMP
);

INSERT INTO operations VALUES ('Mark', '2021-12-31 09:45:07');

SELECT DATE_FORMAT(operations.shutdown, '%d %m %Y')
AS 'Shutdown Date' 
FROM operations

輸出:

| Shutdown Date |
|:--------------|
|  31 12 2021   |

你還可以選擇在最終日期格式中包含時間,方法是將%H%i%s 分別用於小時、分鐘和秒值。

CREATE TABLE operations (
  user TEXT NOT NULL, 
  shutdown TIMESTAMP
);

INSERT INTO operations VALUES ('Mark', '2021-12-31 09:45:07');

SELECT DATE_FORMAT(operations.shutdown, '%d %m %Y %h%:%i%:%s') 
AS 'Shutdown Date' 
FROM operations

輸出:

|    Shutdown Date     |
|:---------------------|
|  31 12 2021 09:45:07 |

%i 符號用於分鐘,因為 %m 已分配給每月數值。

在 MySQL 中使用 Unixtime 轉換時間戳

如果 timestamp 的格式正確,則日期/時間格式 31 12 2021 09:45:07 可能如下所示:1640943907。你可以使用 FROM_UNIXTIME 將數字序列轉換為日期/時間格式。

CREATE TABLE operations (
  user TEXT NOT NULL, 
  shutdown int(11)
);

INSERT INTO operations VALUES ('Mark', 1640943907);

SELECT DATE_FORMAT(FROM_UNIXTIME(operations.shutdown), '%d %m %Y %h%:%i%:%s') 
AS 'Shutdown Date' 
FROM operations

結果:

|    Shutdown Date     |
|:---------------------|
|  31 12 2021 09:45:07 |

如上所示,時間戳被轉換為相同的格式,只需新增 FROM_UNIXTIME 以將數字序列轉換為所需的格式。

在 MySQL 中使用 Cast 轉換 Unixtime

你還可以使用 CAST 代替 DATE_FORMATUNIXTIME 格式轉換為日期。

CREATE TABLE operations (
  user TEXT NOT NULL, 
  shutdown int(11)
);

INSERT INTO operations VALUES ('Mark', 1640943907);

SELECT CAST(FROM_UNIXTIME(operations.shutdown) 
AS DATE)
AS 'Shutdown Date'
FROM operations

輸出:

| Shutdown Date |
|:--------------|
|  2021-12-31   |

但是,此方法限制了你根據需要設定日期格式的能力,這就是首選使用 DATE_FORMAT 的原因。

相關文章 - MySQL Timestamp