mysql 日期 轉換

WBOY
發布: 2023-05-12 10:38:07
原創
15978 人瀏覽過

在使用MySQL資料庫時,經常會進行日期的處理和轉換,這在資料統計、分析和展示中常用到。因此,熟練MySQL日期轉換的方法對於開發人員和資料庫管理員來說是非常重要的。

MySQL提供了豐富的日期函數和語法,可以輕鬆地將日期和時間轉換為不同的格式和字串。本文將重點介紹MySQL日期轉換的語法和範例,並提供一些常見的應用場景和技巧。

日期格式

在MySQL中,日期和時間都是以預設格式儲存的。預設日期格式為YYYY-MM-DD,時間格式為HH:MM:SS。可以使用DATE_FORMAT()函數將日期和時間轉換為各種格式的字串。

下表列出了MySQL日期格式的選項:

##%W#星期的完整名稱%a星期的縮寫%M 月份的完整名稱%b月份的縮寫#%j一年中的天數(0 -366)%U一年中的週數(從星期日算起)%u一年中的周數(從星期一算起)%X年份的完整數字,如果是星期日為新的一年的第一天,新的一年將從前一年的最後一個週六開始%V一年中的周數(從週一算起),如果這一周是下一年的一部分,那麼這一周將算是新的一年的第一周。

日期函數

MySQL提供了許多日期函數,它們可以用於日期和時間的格式轉換、查詢和計算。下面列出了一些常見的日期函數及其描述。

  1. NOW()

NOW()函數傳回目前日期和時間。它可以用於為資料表中的欄位添加時間戳記。

語法:

SELECT NOW();
登入後複製

結果:

2022-01-01 16:12:07
登入後複製
  1. DATE_FORMAT()

DATE_FORMAT()函數可以將日期和時間轉換為指定的格式。

語法:

SELECT DATE_FORMAT(date,format);
登入後複製

範例:

SELECT DATE_FORMAT('2022-01-01 16:25:30','%m/%d/%Y %h:%i:%s %p');
登入後複製

結果:

01/01/2022 04:25:30 PM
登入後複製
  1. DATE()
##DATE( )函數傳回日期值的日期部分。

語法:

SELECT DATE(date);
登入後複製

範例:

SELECT DATE('2022-01-01 16:30:00');
登入後複製

結果:

2022-01-01
登入後複製
登入後複製

    DAY()
  1. ##DAY( )函數傳回給定日期的日期部分中的天數。

語法:

SELECT DAY(date);
登入後複製

範例:

SELECT DAY('2022-01-01 16:30:00');
登入後複製

結果:

01
登入後複製
登入後複製

MONTH()
  1. ##MONTH( )函數傳回給定日期的月份。
語法:

SELECT MONTH(date);
登入後複製

範例:

SELECT MONTH('2022-01-01 16:30:00');
登入後複製

結果:

01
登入後複製
登入後複製

YEAR()

    ##YEAR( )函數傳回給定日期的年份。
  1. 語法:
SELECT YEAR(date);
登入後複製

範例:

SELECT YEAR('2022-01-01 16:30:00');
登入後複製

結果:

2022
登入後複製

DATE_ADD()

    DATE_ADD( )函數用於新增日期和時間值。
  1. 語法:
SELECT DATE_ADD(date, INTERVAL value unit);
登入後複製

範例:

SELECT DATE_ADD('2022-01-01', INTERVAL 1 MONTH);
登入後複製

結果:

2022-02-01
登入後複製

DATE_DIFF()

    DATEDIFF( )函數計算兩個日期之間的天數。
  1. 語法:
SELECT DATEDIFF(date1,date2);
登入後複製

範例:

SELECT DATEDIFF('2022-01-01','2021-12-31');
登入後複製

結果:

1
登入後複製

STR_TO_DATE()

    STR_TO_DATE( )函數將字串轉換為日期格式。
  1. 語法:
SELECT STR_TO_DATE(str, format);
登入後複製

範例:

SELECT STR_TO_DATE('20220101','%Y%m%d');
登入後複製

結果:

2022-01-01
登入後複製
登入後複製

TIME()

##TIME( )函數傳回日期/時間值的時間部分。
  1. 語法:
  2. SELECT TIME(datetime);
    登入後複製
範例:

SELECT TIME('2022-01-01 16:45:30');
登入後複製

結果:

16:45:30
登入後複製

日期轉換技巧

掌握MySQL日期轉換的語法和函數很重要,但是在實際專案中還需要靈活運用。以下介紹一些常見的日期轉換技巧。

計算兩個日期之間差異值

在MySQL中,可以使用DATE_DIFF()、DATEDIFF()、TO_DAYS()等函數計算兩個日期之間的差值。例如,計算兩個日期之間的天數:
    SELECT DATEDIFF('2022-01-02','2021-12-31') AS days;
    登入後複製
  1. 結果:
  2. 2
    登入後複製

#將時間戳轉換為日期格式

如果資料庫中的欄位是以時間戳記的形式儲存的,可以使用FROM_UNIXTIME()函數將其轉換為日期格式。
    SELECT DATE_FORMAT(FROM_UNIXTIME(timestamp),'%Y-%m-%d %H:%i:%s') AS date FROM tableName;
    登入後複製
  1. 將日期格式轉換為時間戳

如果需要將MySQL中的日期格式轉換為UNIX時間戳,在查詢語句中可以使用UNIX_TIMESTAMP()函數。
    SELECT UNIX_TIMESTAMP('2022-01-01 17:00:00') AS timestamp;
    登入後複製
  1. 結果:
  2. 1641054000
    登入後複製

顯示目前月份和年份

使用DATE_FORMAT()函數可以輕鬆顯示目前月份和年份。
    SELECT DATE_FORMAT(NOW(),'%Y年%m月') AS month;
    登入後複製
  1. 結果:
  2. 2022年01月
    登入後複製
    總結

    MySQL日期轉換對於開發人員和資料庫管理員來說是非常重要的。本文介紹了常見的日期函數和語法,以及一些常見的應用場景和技巧。在實際專案中,需要針對具體情況進行彈性運用,以達到最佳的日期格式和效果。

#格式(Format) 說明
#%Y 四位數字的年份
#%y 兩位數字的年份
%m 兩位數字的月份
#%c 兩位數字的月份,不帶前導零
%d 兩位數字的日子
%e # 日期,沒有前導零
%H 時(00-23)
%h #(01 -12)
%i 兩位數字的分鐘數
%s #兩位元數字的秒數
%p "AM" 或"PM"

以上是mysql 日期 轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板