一、日期的操作
1. 日期时间加法
ADDDATE(date,INTERVAL expr unit)
同 DATE_ADD(date,INTERVAL expr unit)
- date 要操作的日期时间,可以是日期类型也可以是日期字符串
- NTERVAL: MySQL关键字 ,意思是间隔,间隙
- unit 操作的单元,年,月,日,时,分,秒对应YEAR,MONTH,DAY,HOUR,MINUTE,SECOND
- expr 想要增加或减少的时间单位。expr>0,增加,expr<0减少
SELECT DATE_ADD('2020-06-06',INTERVAL '2' YEAR);
--- 2023-06-06
2. 日期时间的减法
SUBDATE(date,INTERVAL expr unit)
同 DATE_SUB(date,INTERVAL expr unit)
SELECT DATE_SUB('2020-06-06',INTERVAL '3' YEAR);
--- 2017-06-06
3. 日期时间的时间差
DATEDIFF(expr1, expr2)
计算两个表达式之间的时间差(expr1-expr2 )天
SELECT
DATEDIFF(
'2018-4-23',
'2018-4-12 12:12:23'),
DATEDIFF(
now(),
DATE_ADD(now(), INTERVAL 12 DAY)
)
11 -12
二、日期的查询
1. 查询当前时间日期
now()
获取 当前日期和时间 // 2020-04-12 18:18:57curdate()
当前日期,// 2020-04-12curtime()
当前时间 // 18:18:57
2. 查询时间戳
unix_timestamp([date])
将日期转化为时间戳,参数可以是日期时间类型 now() 也可以是时间字符串 '2020-02-12’
mysql> select from_unixtime(unix_timestamp('2020:4:8'));
+------------------------------------------------+
| from_unixtime(unix_timestamp('2020:4:8')) |
+------------------------------------------------+
| 2020-04-08 00:00:00 |
from_unixtime(timestamp [,pattern])
根据format格式化时间戳
3. 时间截取(返回对应的日期,时间或者数字)
expr :时间字符串,日期字符串或者日期时间类型
date(expr)
// 如果解析失败返回Null,返回日期类型datetime(expr)
//返回时间类型 timeyear(expr)
//返回数字month(expr)
//返回数字【1-12】day(expr)
//返回数字【1-31】hour(expr)
//返回数字【0-23】minute(expr)
//返回数字【0-59】last_day(date)
//返回最后一天 ,返回date类型 //2018-04-30to_days(expr)
//返回到公元0年一月一日的总天数date_format(expr,pattern)
//时间截取,返回字符串
select date(now()),time('2018-04-19 11:10:11'),year(now()),to_days(now());
2018-04-19 11:10:11 2018 737168
select DATE_FORMAT(now(),'%Y%m%d');
-- 20181101
select DATE_FORMAT('2019-01-02','%Y-%m-%d')
-- 2019-01-02