Mysql日期型別剖析

語言: CN / TW / HK

目前B站正在直播Mysql、Oracle實戰,詳情關注公眾號:IT邦德

微信二維碼                              微信公眾號

說明:以下案例為8.0.23環境下
 
一、 日期和時間型別
DATE:YYYY-MM-DD 日期值
TIME:HH:MM:SS 時間值或持續時間
YEAR:YYYY 年份值
DATETIME:YYYY-MM-DD HH:MM:SS 混合日期和時間值
TIMESTAMP:YYYYMMDDHHMMSS 混合日期和時間值,時間戳
 
二、日期與字串轉換
 

2.1 時間轉字串

DATE_FORMAT(日期,格式字串)
 
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
 
 

附日期格式如下:

 

%M 月名字(January……December)  
%W 星期名字(Sunday……Saturday)  
%D 有英語字首的月份的日期(1st, 2nd, 3rd, 等等。)  
%Y 年, 數字, 4 位  
%y 年, 數字, 2 位  
%a 縮寫的星期名字(Sun……Sat)  
%d 月份中的天數, 數字(00……31)  
%e 月份中的天數, 數字(0……31)  
%m 月, 數字(01……12)  
%c 月, 數字(1……12)  
%b 縮寫的月份名字(Jan……Dec)  
%j 一年中的天數(001……366)  
%H 小時(00……23)  
%k 小時(0……23)  
%h 小時(01……12)  
%I 小時(01……12)  
%i 分鐘, 數字(00……59)  
%r 時間,12 小時(hh:mm:ss [AP]M)  
%T 時間,24 小時(hh:mm:ss)  
%S 秒(00……59)  
%s 秒(00……59)  
%p AM或PM  
%w 一個星期中的天數(0=Sunday ……6=Saturday )  
%U 星期(0……52), 這裡星期天是星期的第一天  
%u 星期(0……52), 這裡星期一是星期的第一 
 
 

2.2 字串轉時間

STR_TO_DATE(字串,時間格式)
SELECT STR_TO_DATE('2021-04-12 16:01:45', '%Y-%m-%d %H:%i:%s');
 
 
2.3 時間戳
CREATE TABLE test (id int,
##在建立新記錄和修改現有記錄的時候都對這個資料列重新整理
date1 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
##在建立新記錄的時候把這個欄位設定為當前時間,但以後修改時,不再重新整理它
date2 TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
date3 TIMESTAMP
)
 
insert into test VALUES(1,now(),'20210413000406');
update test set id = 2 where id = 1;   --修改的時候, date1的時間被修改
 
 
三、日期常用函式大全
 ## 返回本週第幾天 (表示,記住:星期天=1,星期一=2, ... 星期六=7)
SELECT DAYOFWEEK('20210413')  
 
 ## 返回當年第幾天
SELECT DAYOFYEAR('20210413')
 
 ## 返回小時
SELECT HOUR(now())
 
##當index為1時,表示一週的第一天是週一
SELECT WEEK('20210413', 1)
 
##返回季度
SELECT QUARTER('20210413')
 
##返回MONTH
SELECT MONTH('20210413')
 
## 返回YEAR
SELECT YEAR('20210413')
 

QQ:2243967774,更多資料請關注公眾號:IT 邦德,專注於資料庫及程式開發,掃描加微信

​​​​​​​