首頁 > 軟體

一文教會你在MySQL中使用DateTime

2022-09-12 18:02:37

MySQL 日期時間教學  

在本教學中,我將通過範例解釋 MySQL DATE 和 TIME 函數。   

DATETIME 用於儲存日期和時間的值。預設情況下,DATETIME 值的範圍從 1000-01-01 00:00:00 到 9999-12-31 23:59:59。它使用 5 個位元組進行儲存。

DATETIME 格式的語法:

YYYY-MM-DD HH:MM:SS

MySQL 日期和時間型別

MySQL 中有許多有用的日期和時間函數。我見過太多的應用程式在程式碼級別執行日期計算,而使用內建 MySQL 函數可以完成相同的操作。然而,在我們開始使用這些函數之前,讓我們重新整理一下記憶,看看 MySQL 可以使用哪些日期和時間型別。

DATETIME

YYYY-MM-DD HH:MM:SS

DATE

YYYY-MM-DD

TIMESTAMP

YYYYMMDDHHSSMM

TIME

HH:MM:SS

YEAR

YYYY

MySQL 日期時間  

MySQL 在讀取日期格式方面非常寬鬆。儘管使用約定是明智的,但您可以使用任何其他您喜歡的標點符號。例如,現在建立一個表並插入虛擬資料,如下所示。

CREATE TABLE vatsa(Dt DATETIME);    

現在,以正確的格式插入資料,如下所示。

INSERT INTO vatsa(Dt) VALUES('2020-09-14 23:18:17');  

筆記:

  您可以使用 '=' 和 '+' 符號代替正確的格式,如下所示:

INSERT INTO vatsa(Dt) VALUES('2020=09=14 23*18*21');   

但是儘管我確定它們存在,但我沒有找到使用它的充分理由,所以我建議您遵守約定,除非絕對必要。

現在,執行以下查詢以檢視結果。

SELECT * FROM vatsa; 

簡單的日期和時間計算  

日期計算相對容易。我們要檢視的第一個函數是 YEAR() 函數,它返回給定日期的年份。要從值中獲取年、月、周、日、季度、日期、時間、小時、分鐘和秒的 DATETIME 值,請使用以下語句中所示的函數:  

例如:

SELECT YEAR('2020-09-14 23:18:17') AS Year,  
    Month('2020-09-14 23:18:17') AS Month,  
    Day('2020-09-14 23:18:17') AS Day,  
    Hour('2020-09-14 23:18:17') AS Hour,  
    Minute('2020-09-14 23:18:17') AS Minute,  
    Second('2020-09-14 23:18:17') AS Second,  
    Date('2020-09-14 23:18:17') AS Date,  
    Time('2020-09-14 23:18:17') AS Time,  
    Quarter('2020-09-14 23:18:17') AS Quarter; 

或者,使用者可以使用動態方法來獲取當前日期時間的日期和時間。

SET @vatsaDATETIME = NOW();  
  
SELECT YEAR(@vatsaDATETIME) AS Year,  
    Month(@vatsaDATETIME) AS Month,  
    Day(@vatsaDATETIME) AS Day,  
    Hour(@vatsaDATETIME) AS Hour,  
    Minute(@vatsaDATETIME) AS Minute,  
    Second(@vatsaDATETIME) AS Second,  
    Date(@vatsaDATETIME) AS Date,  
    Time(@vatsaDATETIME) AS Time,  
    Quarter(@vatsaDATETIME) AS Quarter; 

日期函數的基本算術運算  

我們可以使用“+”和“-”運運算元對日期執行簡單的算術運算。讓我們看一些基本的例子。  

例如:  

1)  要找出哪一年比給定日期提前五年,您可以使用它。

SET @vatsa = now();  
SELECT @vatsa + 5; 

2)  要找出過去五年是哪一年,請使用。

SET @vatsa = now();  
SELECT @vatsa – 5; 

現在,讓我們討論一個基本的實時範例。

SET @vatsa = now();  
SELECT @vatsa - 5 AS PAST,  
    year(@vatsa) AS CURRENT,  
    @vatsa + 5 AS FUTURE; 

NOW() 函數  

當然,您不必對日期進行寫死。MySQL 非常有能力告訴日期和時間,使用 NOW() 函數。並且,在執行此語句時,它會返回當前日期和時間。

SELECT NOW();   

CURRENT_DATE() 函數  

或者只是使用 CURRENT_DATE() 函數的日期。並且,在執行此語句時,它會返回當前日期。

SELECT CURRENT_DATE(); 

MySQL 日期時間與時間戳  

TIMESTMP 類似於 MySQL 中的 DATTIME。TIMESTAMP 需要 4 個位元組,但 DATETIME 需要 5 個位元組。  

TIMESTAMP 列儲存完整的 14 個字元,但您可以以不同的方式顯示它。例如,如果將列定義為 TIMESTAMP(2),則只會顯示兩位數的年份,但會儲存完整的值。如果您稍後決定顯示完整值,您可以更改表定義,完整值將出現。  

下面列出了定義 TIMESTAMP 的各種方法以及結果顯示。

TIMESTAMP(14)

YYYYMMDDHHMMSS

TIMESTAMP(12)

YYMMDDHHMMSS

TIMESTAMP(10)

YYMMDDHHMM

TIMESTAMP(8)

YYYYMMDD

TIMESTAMP(6)

YYMMDD

TIMESTAMP(4)

YYMM

TIMESTAMP(2)

YY

結論  

在本文中,我通過各種範例討論了 MySQL 中 DATE 和 TIME 函數的概念。

到此這篇關於在MySQL中使用DateTime的文章就介紹到這了,更多相關MySQL使用DateTime內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com