MySql資料庫的時間轉換問題

2022-05-21 18:18:09 字數 3583 閱讀 3236

時間、字串、時間戳之間的互相轉換很常用,但是幾乎每次使用時候都喜歡去搜尋一下用法;本文整理一下三者之間的 轉換(即:date轉字串、date轉時間戳、字串轉date、字串轉時間戳、時間戳轉date,時間戳轉字串)用法,方便日後學習和查閱;

date_format(date, format) 函式,mysql日期格式化函式date_format()

unix_timestamp() 函式

str_to_date(str, format) 函式

from_unixtime(unix_timestamp, format) 函式,mysql時間戳格式化函式from_unixtime

select date_format(now(), '%y-%m-%d');  

#結果:2017-01-05  

select unix_timestamp(now());  

#結果:1452001082  

select str_to_date('2016-01-02', '%y-%m-%d %h');  

#結果:2017-01-02 00:00:00  

select unix_timestamp('2016-01-02');  

#結果:1451664000  

select from_unixtime(1451997924);  

#結果:2017-01-05 20:45:24  

select from_unixtime(1451997924,'%y-%d');  

//結果:2017-01-05 20:45:24  

mysql日期格式化(format)取值範圍。值含義

秒%s、%s

兩位數字形式的秒( 00,01, ..., 59)

分%i、%i

兩位數字形式的分( 00,01, ..., 59)

小時 %h

24小時制,兩位數形式小時(00,01, ...,23)

%h12小時制,兩位數形式小時(00,01, ...,12)

%k24小時制,數形式小時(0,1, ...,23)

%l12小時制,數形式小時(0,1, ...,12)

%t24小時制,時間形式(hh:mm:ss)

%r12小時制,時間形式(hh:mm:ss am 或 pm)

%p am上午或pm下午 

周 %w

一周中每一天的名稱(sunday,monday, ...,saturday)

%a一周中每一天名稱的縮寫(sun,mon, ...,sat) 

%w 以數字形式標識周(0=sunday,1=monday, ...,6=saturday) 

%u數字表示週數,星期天為週中第一天

%u數字表示週數,星期一為週中第一天

天%d 

兩位數字表示月中天數(01,02, ...,31)

%e 數字表示月中天數(1,2, ...,31)

%d英文本尾表示月中天數(1st,2nd,3rd ...) 

%j以三位數字表示年中天數(001,002, ...,366) 

月%m 

英文月名(january,february, ...,december) 

%b 英文縮寫月名(jan,feb, ...,dec) 

%m 兩位數字表示月份(01,02, ...,12)

%c 數字表示月份(1,2, ...,12) 

年%y 

四位數字表示的年份(2015,2016...)

%y 兩位數字表示的年份(15,16...)

文字輸出 

%文字 

直接輸出文字內容

時間、字串、時間戳之間的互相轉換很常用,但是幾乎每次使用時候都喜歡去搜尋一下用法;本文整理一下三者之間的 轉換(即:date轉字串、date轉時間戳、字串轉date、字串轉時間戳、時間戳轉date,時間戳轉字串)用法,方便日後學習和查閱;

date_format(date, format) 函式,mysql日期格式化函式date_format()

unix_timestamp() 函式

str_to_date(str, format) 函式

from_unixtime(unix_timestamp, format) 函式,mysql時間戳格式化函式from_unixtime

select date_format(now(), '%y-%m-%d');  

#結果:2017-01-05  

select unix_timestamp(now());  

#結果:1452001082  

select str_to_date('2016-01-02', '%y-%m-%d %h');  

#結果:2017-01-02 00:00:00  

select unix_timestamp('2016-01-02');  

#結果:1451664000  

select from_unixtime(1451997924);  

#結果:2017-01-05 20:45:24  

select from_unixtime(1451997924,'%y-%d');  

//結果:2017-01-05 20:45:24  

mysql日期格式化(format)取值範圍。值含義

秒%s、%s

兩位數字形式的秒( 00,01, ..., 59)

分%i、%i

兩位數字形式的分( 00,01, ..., 59)

小時 %h

24小時制,兩位數形式小時(00,01, ...,23)

%h12小時制,兩位數形式小時(00,01, ...,12)

%k24小時制,數形式小時(0,1, ...,23)

%l12小時制,數形式小時(0,1, ...,12)

%t24小時制,時間形式(hh:mm:ss)

%r12小時制,時間形式(hh:mm:ss am 或 pm)

%p am上午或pm下午 

周 %w

一周中每一天的名稱(sunday,monday, ...,saturday)

%a一周中每一天名稱的縮寫(sun,mon, ...,sat) 

%w 以數字形式標識周(0=sunday,1=monday, ...,6=saturday) 

%u數字表示週數,星期天為週中第一天

%u數字表示週數,星期一為週中第一天

天%d 

兩位數字表示月中天數(01,02, ...,31)

%e 數字表示月中天數(1,2, ...,31)

%d英文本尾表示月中天數(1st,2nd,3rd ...) 

%j以三位數字表示年中天數(001,002, ...,366) 

月%m 

英文月名(january,february, ...,december) 

%b 英文縮寫月名(jan,feb, ...,dec) 

%m 兩位數字表示月份(01,02, ...,12)

%c 數字表示月份(1,2, ...,12) 

年%y 

四位數字表示的年份(2015,2016...)

%y 兩位數字表示的年份(15,16...)

文字輸出 

%文字 

直接輸出文字內容

Mysql資料庫編碼轉換問題

現在做乙個物料管理專案,用的是 資料庫,亂碼問題,在網上找到了答案,現和大家一起享,轉換的基本思想是把資料庫用原字符集把資料匯出,然後用新的字符集把資料匯入。現假設資料庫名是 21php,資料庫連線的使用者和密碼都是21php,連線主機是 localhost。下面是轉換操作步驟,1.匯出 mysql...

mysql 查詢資料庫時時間戳的轉換

最近在做mysql資料庫匯出為excel,用phpexcel自己封裝了乙個公用類,需要傳遞sql語句進行檢索要匯出的資料。當匯出的資料有時間戳時要讓其自動轉換為時間,經過查閱資料問題已經解決,把涉及到的方法在這裡共享給大家。1 將時間轉換為時間戳 select unix timestamp 2009...

資料庫時間格式轉換

最近運算元據庫的時候對時間的操作進行了簡單的總結 1.首先資料庫時間型別date和datetime的區別 date 日期 datetime日期 時分秒 2.獲取 資料庫的值顯示在前台頁面上,預設是毫秒值,肯定不是我們希望的到的結果,所以需要在查詢的時候做轉換操作。2.1首先在執行sql的xml檔案中...