【数据库】Mysql日期/时间相关函数汇总
生活随笔
收集整理的這篇文章主要介紹了
【数据库】Mysql日期/时间相关函数汇总
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
當(dāng)我們處理日期時(shí),最難的任務(wù)恐怕是確保所插入的日期的格式,與數(shù)據(jù)庫中日期列的格式相匹配。
只要數(shù)據(jù)包含的只是日期部分,運(yùn)行查詢就不會(huì)出問題。但是,如果涉及時(shí)間,情況就有點(diǎn)復(fù)雜了。
在討論日期查詢的復(fù)雜性之前,我們先來看看最重要的內(nèi)建日期處理函數(shù)。
MySQL Date 函數(shù)
下面的表格列出了 MySQL 中最重要的內(nèi)建日期函數(shù):
| NOW() | 返回當(dāng)前的日期和時(shí)間 |
| CURDATE() | 返回當(dāng)前的日期 |
| CURTIME() | 返回當(dāng)前的時(shí)間 |
| DATE() | 提取日期或日期/時(shí)間表達(dá)式的日期部分 |
| EXTRACT() | 返回日期/時(shí)間按的單獨(dú)部分 |
| DATE_ADD() | 給日期添加指定的時(shí)間間隔 |
| DATE_SUB() | 從日期減去指定的時(shí)間間隔 |
| DATEDIFF() | 返回兩個(gè)日期之間的天數(shù) |
| DATE_FORMAT() | 用不同的格式顯示日期/時(shí)間 |
下面通過具體列子說明每個(gè)函數(shù)的使用方法:
# 當(dāng)前完整時(shí)間 select now() as 當(dāng)前時(shí)間1; -- 2019-11-12 10:29:50 select current_timestamp() as 當(dāng)前時(shí)間2; -- 2019-11-12 10:29:50# 當(dāng)前日期或時(shí)間部分 select current_date() as 當(dāng)前日期部分1; -- 2019-11-12 select CURDATE() as 當(dāng)前日期部分2; -- 2019-11-12 select DATE(now()) as 獲取日期部分3; -- 2019-11-12 select current_time() as 當(dāng)前時(shí)間部分1; -- 10:28:58 select CURTIME() as 當(dāng)前時(shí)間部分2; -- 10:28:58 select time(now()) as 獲取時(shí)間部分3; -- 10:28:58# 時(shí)間戳與時(shí)間之間轉(zhuǎn)化 select unix_timestamp() as 獲得unix時(shí)間戳; -- 1573525853 select from_unixtime(unix_timestamp()) as 從時(shí)間戳獲得時(shí)間; -- 2019-11-12 10:30:53# 返回日期/時(shí)間的單獨(dú)部分(年、月、日等) select EXTRACT(YEAR FROM now()) as 返回年份; -- 2019 select EXTRACT(MONTH FROM now()) as 返回月份; -- 11 select EXTRACT(DAY FROM now()) as 返回天數(shù); -- 12 select year(now()) as 返回年份2; -- 2019 select month(now()) as 返回月份2; -- 11 select day(now()) as 返回天數(shù)2; -- 12# 對(duì)日期進(jìn)行格式化 select DATE_FORMAT(now(), '%Y%m%d') as 格式化時(shí)間1; -- 20191112 select DATE_FORMAT(now(), '%Y%m01') as 格式化時(shí)間2; -- 20191101 select DATE_FORMAT(now(), '%Y-%m') as 格式化時(shí)間3; -- 2019-11# 時(shí)間相加減 select DATE_SUB(now(),interval 1 day) as 日期相減1; -- 2019-11-11 10:32:22 select DATE_ADD(now(),interval -1 day) as 日期相減2; -- 2019-11-11 10:32:22select DATE_ADD(now(),interval 1 day) as 日期相加1; -- 2019-11-13 10:32:22 select DATE_SUB(now(),interval -1 day) as 日期相加2; -- 2019-11-13 10:32:22# 前面減后面(只計(jì)算天數(shù)) select DATEDIFF(DATE_ADD(now(),interval 1 day),now()) as 前面日期減后面日期得到天數(shù);# 后面減去前面 SELECT TIMESTAMPDIFF(YEAR, '2018-11-13 00:00:00',now()) as 相差年份數(shù); -- 當(dāng)前日期2019-11-12:如果2019-11-12 00:00:00結(jié)果1;2019-11-11 00:00:00結(jié)果1;2019-11-13 00:00:00結(jié)果0 SELECT TIMESTAMPDIFF(MONTH,'2019-03-13 00:00:00',now()) as 相差月份數(shù); -- 當(dāng)前日期2019-11-12:如果2019-03-12 00:00:00結(jié)果8;2019-03-11 00:00:00結(jié)果8;2019-03-13 00:00:00結(jié)果7 SELECT TIMESTAMPDIFF(DAY, '2019-11-11 11:00:00',now()) as 相差天數(shù); -- 當(dāng)前日期2019-11-12 11:00:00 :如果2019-11-11 11:00:00結(jié)果1;2019-11-11 10:00:00結(jié)果1;2019-11-11 12:00:00結(jié)果0?
總結(jié)
以上是生活随笔為你收集整理的【数据库】Mysql日期/时间相关函数汇总的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 假设前置数据法|全网唯一
- 下一篇: Appium+PythonUI自动化之w