MySQL - FROM_UNIXTIME() 函式



MySQL 的 FROM_UNIXTIME() 函式用於將 UNIX 時間戳 表示為日期時間或字元字串值。UNIX 時間戳不過是一個內部時間戳值,表示自“1970-01-01 00:00:00”UTC 以來經過的秒數。

此函式接受 UNIX 時間戳作為引數,以及格式作為可選引數,將其轉換為日期時間值或字元字串(根據給定的格式),並返回結果。

此函式的特殊情況包括:

  • 如果省略 format,則此函式返回 DATETIME 值。

  • 如果 UNIX 時間戳或 format 為 NULL,則此函式返回 NULL。

  • 如果 UNIX 時間戳是整數,則 DATETIME 的小數秒精度為零。

  • 當 UNIX 時間戳是十進位制值時,DATETIME 的小數秒精度與十進位制值的精度相同,最多為 6 位。

  • 當 UNIX 時間戳是浮點數時,日期時間的秒小數精度為 6。

語法

以下是 MySQL FROM_UNIXTIME() 函式的語法:

FROM_UNIXTIME(unix_timestamp, [format])

引數

此方法接受兩個引數。下面描述了這兩個引數:

  • unix_timestamp: UNIX 時間戳,表示自 1970 年 1 月 1 日 00:00:00 UTC 以來經過的秒數。

  • format (可選): 所需的輸出格式。這是一個字串,指定結果的格式化方式。如果省略,則預設格式為 'YYYY-MM-DD HH:MM:SS'。

返回值

此函式返回一個 DATETIME 值,表示與給定 UNIX 時間戳對應的日期和時間。

示例

以下示例演示了 FROM_UNIXTIME() 函式的使用:

SELECT FROM_UNIXTIME(0) As Result;

輸出

獲得以下輸出:

結果
1970-01-01 05:30:00

示例

以下是如何將 Unix 時間戳 1351708200 轉換為日期和時間格式的另一個示例:

SELECT FROM_UNIXTIME(1351708200) As Result;

輸出

獲得以下輸出:

結果
2012-11-01 00:00:00

示例

我們還可以將 日期時間 表示式作為引數傳遞給此函式:

SELECT FROM_UNIXTIME(1441426245.2300) As Result;

輸出

這將產生以下結果:

結果
2015-09-05 09:40:45.2300

示例

我們還可以傳遞字串形式的時間戳值,如下所示:

SELECT FROM_UNIXTIME('463455563') As Result;

輸出

獲得以下輸出:

結果
1984-09-08 07:09:23.000000

示例

我們還可以將列名作為引數傳遞給此函式。讓我們使用 CREATE 語句建立一個名為 MyPlayers 的表,如下所示:

CREATE TABLE MyPlayers(
   ID INT,
   NAME VARCHAR(255),
   DOBTimestamp VARCHAR(255),
   Place_Of_Birth VARCHAR(255),
   Country VARCHAR(255),
   PRIMARY KEY (ID)
);

現在,使用 INSERT 語句將以下記錄插入 MyPlayers 表中:

INSERT INTO MyPlayers VALUES
(1, 'Shikhar Dhawan', '376338600', 'Delhi', 'India'),
(2, 'Jonathan Trott', '356725800', 'CapeTown', 'SouthAfrica'),
(3, 'Kumara Sangakkara', '246738600', 'Matale', 'Srilanka'),
(4, 'Virat Kohli', '594671400', 'Delhi', 'India'),
(5, 'Rohit Sharma', '546719400', 'Nagpur', 'India'),
(6, 'Ravindra Jadeja', '597349800', 'Nagpur', 'India'),
(7, 'James Anderson', '394223400', 'Burnley', 'England');

執行以下查詢以獲取在上面建立的表中插入的所有記錄:

Select * From MyPlayers;

以下是 ORDERS 表:

ID 姓名 DOBTimestamp 出生地 國家
1 希卡爾·達萬 376338600 德里 印度
2 喬納森·特羅特 356725800 開普敦 南非
3 庫馬拉·桑加卡拉 246738600 馬塔萊 斯里蘭卡
4 維拉特·科利 594671400 德里 印度
5 羅希特·沙爾馬 546719400 納格浦爾 印度
6 拉文德拉·賈德賈 597349800 納格浦爾 印度
7 詹姆斯·安德森 394223400 伯恩利 英格蘭

現在,我們使用 MySQL FROM_UNIXTIME() 函式將 DOBTimestamp 列的值轉換為日期時間值:

SELECT ID, NAME, DOBTimestamp, FROM_UNIXTIME(DOBTimestamp) 
As Result From MyPlayers;

輸出

輸出如下所示:

ID 姓名 DOBTimestamp 結果
1 希卡爾·達萬 376338600 1981-12-05 00:00:00.000000
2 喬納森·特羅特 356725800 1981-04-22 00:00:00.000000
3 庫馬拉·桑加卡拉 246738600 1977-10-27 00:00:00.000000
4 維拉特·科利 594671400 1988-11-05 00:00:00.000000
5 羅希特·沙爾馬 546719400 1987-04-30 00:00:00.000000
6 拉文德拉·賈德賈 597349800 1988-12-06 00:00:00.000000
7 詹姆斯·安德森 394223400 1982-06-30 00:00:00.000000
廣告