MySQL常用的單行函式彙總3——日期時間函式
阿新 • • 發佈:2022-03-27
日期時間函式:
1 #3.1 獲取日期、時間 2 SELECT CURDATE(),CURRENT_DATE(),CURTIME(),NOW(),SYSDATE(), 3 UTC_DATE(),UTC_TIME() 4 FROM DUAL; 5 6 SELECT CURDATE(),CURDATE() + 0,CURTIME() + 0,NOW() + 0 7 FROM DUAL;
CURDATE(),CURRENT_DATE():獲取當前的日期(到日)
CURTIME,NOW,SYSDATE:獲取當前的時間,到秒
CURDATE()+0等:+0後,輸出的內容相較之前在年月日時分秒之間少了一個'-'
1 #3.2 日期與時間戳的轉換 2 SELECT UNIX_TIMESTAMP(),UNIX_TIMESTAMP('2021-10-01 12:12:32'), 3 FROM_UNIXTIME(1635173853),FROM_UNIXTIME(1633061552) 4 FROM DUAL;
UNIX_TIMESTAMP():無參則將當前時間轉為時間戳,有參則把引數中日期轉為時間戳,時間戳表示該日期到1.1.1的秒數
1 #3.3 獲取月份、星期、星期數、天數等函式 2 SELECT YEAR(CURDATE()),MONTH(CURDATE()),DAY(CURDATE()),3 HOUR(CURTIME()),MINUTE(NOW()),SECOND(SYSDATE()) 4 FROM DUAL; 5 6 7 SELECT MONTHNAME('2021-10-26'),DAYNAME('2021-10-26'),WEEKDAY('2021-10-26'), 8 QUARTER(CURDATE()),WEEK(CURDATE()),DAYOFYEAR(NOW()), 9 DAYOFMONTH(NOW()),DAYOFWEEK(NOW()) 10 FROM DUAL;
YEAR(DATE型別):獲取該DATE型別的年份,其他屬性同理
MONTHNAME(DATE型別):獲取月份的英文名,DAYNAME獲取星期幾的英文名,WEEKDAY表示所在周的編號(以上較為繁瑣,記住函式名字後去程式設計試驗即可明白意義)
#3.4 日期的操作函式 SELECT EXTRACT(SECOND FROM NOW()),EXTRACT(DAY FROM NOW()), EXTRACT(HOUR_MINUTE FROM NOW()),EXTRACT(QUARTER FROM '2021-05-12') FROM DUAL;
EXTRACT(HOUR_MINUTE FROM NOW()):從當前的時間中提取出時和分兩個元素(中間是之間相連的沒有分隔符)
1 #3.5 時間和秒鐘轉換的函式 2 SELECT TIME_TO_SEC(CURTIME()), 3 SEC_TO_TIME(83355) 4 FROM DUAL;
將時分秒轉化為秒數:TIME_TO_SEC,將秒數轉為時分秒:SEC_TO_TIME
1 #3.6 計算日期和時間的函式 2 3 SELECT NOW(),DATE_ADD(NOW(),INTERVAL 1 YEAR),#當前日期基礎上+1年 4 DATE_ADD(NOW(),INTERVAL -1 YEAR), 5 DATE_SUB(NOW(),INTERVAL 1 YEAR)#-(-1)年 6 FROM DUAL;
1 #格式化: 2 SELECT DATE_FORMAT(CURDATE(),'%Y-%M-%D'), 3 DATE_FORMAT(NOW(),'%Y-%m-%d'),TIME_FORMAT(CURTIME(),'%h:%i:%S'), 4 DATE_FORMAT(NOW(),'%Y-%M-%D %h:%i:%S %W %w %T %r') 5 FROM DUAL; 6 7 #解析:格式化的逆過程 8 SELECT STR_TO_DATE('2021-October-25th 11:37:30 Monday 1','%Y-%M-%D %h:%i:%S %W %w') 9 FROM DUAL; 10 11 SELECT GET_FORMAT(DATE,'USA') 12 FROM DUAL; 13 14 SELECT DATE_FORMAT(CURDATE(),GET_FORMAT(DATE,'USA')) 15 FROM DUAL;