MySQL日期时间函数汇总、时间格式转换方法
- 时间函数
- 日期时间格式转换
- date_format函数
- EXTRACT()
- DATE_ADD()
- DATE_SUB()
- DATEDIFF函数
时间函数
函数 | 描述 |
---|---|
NOW() | 返回当前的日期和时间 |
CURDATE() | 返回当前的日期 |
CURTIME() | 返回当前的时间 |
DATE() | 返回日期或日期/时间表达式的日期部分 |
HOUR() | 获取日期中的小时 |
YEAR() | 获取日期中的年 |
MONTH() | 获取日期中的月 |
DAY() | 获取日期中的日 |
MINUTE() | 获取日期中的分 |
SECOND() | 获取日期中的秒 |
EXTRACT() | 用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等 |
DATE_FORMAT() | 用于以不同的格式显示日期/时间数据,常见参数:见图 |
DATEDIFF() | 返回两个日期之间的天数 |
日期时间格式转换
date_format函数
同一个日期时间会有多种不同的表示方式,有的时候需要在不同格式之间相互转换。在Sql中我们用的是date_format()函数,date_format函数格式如下:
date_format(datetime,format)
datetime表示要被转换的具体的日期时间,format表示要转换成的格式,可选的格式如下:
示例如下:
select date_format("2022-12-25 22:47:37","%Y-%m-%d")
输出结果为:2022-12-25
select date_format("2022-12-25 22:47:37","%Y-%b")
输出结果为:2022-Dec
select date_format("2022-12-25 22:47:37","%Y-%m-%W")
输出结果为:2022-12-Sunday
select date_format("2022-12-25 22:47:37","%j")
输出结果为:359
select date_format("2022-12-25 22:47:37","%H:%i:%S")
输出结果为:22:47:37
select date_format("2022-12-25 22:47:37","%Y-%m-%d %H:%i:%S")
输出结果为:2022-12-25 22:47:37
select date_format("2022-12-25 22:47:37","%T")
输出结果为:22:47:37
EXTRACT()
EXTRACT() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟。
语法:EXTRACT(unit FROM date)
date 参数是合法的日期表达式。
select extract(year from "2022-12-25 22:47:37") as Year,
extract(month from "2022-12-25 22:47:37") as Month,
extract(day from "2022-12-25 22:47:37") as Day,
extract(hour from "2022-12-25 22:47:37") as Hour,
extract(minute from "2022-12-25 22:47:37") as Minute,
extract(second from "2022-12-25 22:47:37") as Second;
结果:
DATE_ADD()
DATE_ADD() 函数向日期添加指定的时间间隔。
语法:DATE_ADD(date,INTERVAL expr type)
select date_add("2022-12-25 22:47:37",interval 3 day) as three_days_later;
输出结果为:
DATE_SUB()
DATE_SUB() 函数从日期减去指定的时间间隔。
语法:DATE_SUB(date,INTERVAL expr type)
date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
select date_sub("2022-12-25 22:47:37",interval 7 day) as last_week;
输出结果为:
DATEDIFF函数
DATEDIFF函数用于返回两个日期的天数
语法:DATEDIFF(date1,date2)
date1 和 date2 参数是合法的日期或日期/时间表达式。
只有值的日期部分参与计算。
select datediff("2023-04-06","2020-04-06") as Differdate
输出结果为:1095
select datediff("2020-04-06","2023-04-06")
输出结果为:-1095
select datediff("2023-04-06","2023-04-05")
输出结果为:1
select datediff("2023-04-06","2023-04-06 14:00:00")
输出结果为:0
select datediff("2023-04-06 20:00:00","2023-04-06 14:00:00")
输出结果为:0
select datediff("2023-04-06 20:00:00","2023-04-05 14:00:00")
输出结果为:1
❤️希望对您有帮助,您的支持是我创作最大的动力!👍👍👍