SQL常用日期函数
1、基本函數
SELECT CURDATE(), --當前日期CURTIME(), --當前時間NOW(), --當前日期+時間SYSDATE()2、獲取 日期、時間的特定部分 SELECT YEAR(NOW()), -- 年 MONTHNAME(NOW()), -- 月的名稱WEEK(NOW()), -- 一年中的第幾周DAYNAME(NOW()), -- 這一天是這一周的周幾HOUR(NOW()), -- 小時MINUTE(NOW()), -- 分鐘EXTRACT(YEAR FROM NOW()),EXTRACT(QUARTER FROM NOW()), EXTRACT(MONTH FROM NOW()), EXTRACT(DAY FROM NOW()), EXTRACT(YEAR FROM NOW()), EXTRACT(HOUR FROM NOW()), EXTRACT(MINUTE FROM NOW()), EXTRACT(SECOND FROM NOW()),EXTRACT(YEAR_MONTH FROM NOW()), -- 格式:YYYYMM 201606EXTRACT(DAY_HOUR FROM NOW()), -- 格式:DDHH 2418 EXTRACT(DAY_MINUTE FROM NOW()), -- 格式:DDMM 2405 EXTRACT(DAY_SECOND FROM NOW()), EXTRACT(HOUR_MINUTE FROM NOW()), EXTRACT(HOUR_SECOND FROM NOW()), EXTRACT(MINUTE_SECOND FROM NOW())
3、獲取日期的特殊函數 SELECT DAYOFYEAR(NOW()), -- 一年中的第幾天DAYOFMONTH(NOW()), -- 一個月中的第幾天DAYOFWEEK(NOW()), -- 一周中的第幾天,周日作為第1天WEEKOFYEAR(NOW()), -- 一年中的第幾周WEEKDAY(NOW()), -- 周幾,周一作為第0天YEARWEEK(NOW()), -- 一年中的第幾周,格式為:201625 LAST_DAY(NOW()) -- 當前日期所在月份的最后一天
4、日期、時間運算 SELECT DATE_ADD(NOW(),INTERVAL 10 YEAR), -- 增加日期DATE_ADD(NOW(),INTERVAL 10 MONTH), DATE_ADD(NOW(),INTERVAL 10 DAY), DATE_ADD(NOW(),INTERVAL 10 HOUR), DATE_ADD(NOW(),INTERVAL 10 MINUTE), DATE_ADD(NOW(),INTERVAL 10 SECOND), DATE_SUB(NOW(),INTERVAL 10 DAY), -- 減少日期DATE_SUB(NOW(),INTERVAL -10 DAY),DATE_SUB(NOW(),INTERVAL -10 HOUR),DATEDIFF(DATE_ADD(NOW(),INTERVAL 8 HOUR),NOW()), -- expr1 減去 expr2 得到的天數DATEDIFF(DATE_ADD(NOW(),INTERVAL 9 HOUR),NOW()), -- 在相減時,只是做日期部分的計算,不考慮時 DATEDIFF(NOW(),'2016-06-05'), PERIOD_ADD(201605,8), -- 給YYMM、YYYYMM 加上N個月PERIOD_DIFF(201605,201701), -- expr2 減去 expr1 得到的月數TIMEDIFF('05:00:00','00:00:00') -- expr1 減去 expr2 得到的 時間型數據,不支持這種格式 INTERVAL 10 MINUTE
5、日期、時間運算的增強版本
SELECT TIMESTAMP(NOW()), -- 把日期時間 轉化為 時間戳類型TIMESTAMP(NOW(),'01 01:01:01'), -- 轉換類型的同時,會加上 expr2TIMESTAMPADD(DAY,5,NOW()), -- 增加日期 5天TIMESTAMPDIFF(DAY,NOW(),NOW()+INTERVAL 1 DAY), -- 日期減法,可以指定 具體的單位TIMESTAMPDIFF(SECOND,NOW(),NOW())6、日期、時間的轉化和構造 SELECT TIME_TO_SEC(CURTIME()), -- 時間轉化為秒數:67622SEC_TO_TIME(TIME_TO_SEC(CURTIME())), -- 秒數轉化為時間:18:47:02TO_DAYS(NOW()), -- 日期轉化為天數:736504FROM_DAYS(TO_DAYS(NOW())), -- 天數轉化為日期:2016-06-24MAKEDATE(2015,32), -- 構造日期:expr1為年,expr2為天,這里是:2015-02-01MAKETIME(10,11,11) -- 構造時間:時 分 秒
7、 日期、時間的格式化以及獲取格式 SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'), -- 把日期時間 按照一定的格式,轉化為字符串格式TIME_FORMAT(NOW(),'%H:%i:%s'),GET_FORMAT(DATE,'usa'), -- 獲取格式,expr1:DATE,TIME,DATETIME, expr2:usa,interval,isoGET_FORMAT(TIME,'usa'),GET_FORMAT(DATETIME,'usa')
8、 unix時間戳、utc時間 SELECT UTC_DATE(),UTC_TIME(), UTC_TIMESTAMP(),UNIX_TIMESTAMP(NOW()),FROM_UNIXTIME(UNIX_TIMESTAMP(NOW())),FROM_UNIXTIME(UNIX_TIMESTAMP(NOW()),'%Y-%m-%d %H:%i:%s')
總結
- 上一篇: 〖Windows〗Linux的Qt程序源
- 下一篇: Linux 系统应用编程——出错处理(e