目录
MySQL日期和时间类型
1,NOW():返回当前日期和时间。
2,CURDATE():返回当前日期。
3,CURTIME():返回当前时间。
4,DATE():提取日期值。
5,TIME():提取时间值。
6,YEAR():提取年份。
7,MONTH():提取月份。
8,DAY():提取日期中的天数。
9,HOUR():提取小时数。
10,MINUTE():提取分钟数。
11,SECOND():提取秒数。
12,DATE_FORMAT():将日期格式化为指定的格式。
13,DATE_ADD():在日期上添加一个指定的时间间隔。
14,DATE_SUB():从日期中减去一个指定的时间间隔。
15,DATEDIFF():计算两个日期之间的天数差异。
16,UNIX_TIMESTAMP():返回一个时间戳
17,FROM_UNIXTIME()时间戳转换日期
MySQL日期和时间类型
MySQL中有许多日期和时间类型,包括日期类型、时间类型、日期时间类型、时间戳类型等等。常用的日期类型有DATE、YEAR、TIME;常用的日期时间类型有DATETIME和TIMESTAMP
NOW():返回当前日期和时间。
select NOW()//获取当前日期时间,年月日-时分秒
运行如下
CURDATE():返回当前日期。
select CURDATE()//获取日期,年-月-日
运行如下
CURTIME():返回当前时间。
select CURTIME()//返回当前的时间,时:分:秒
运行如下
DATE():提取日期值。
select DATE('2023-4-4')//获取日期,第4日
运行如下
TIME():提取时间值。
select time('23')//获取秒数
YEAR():提取年份。
select YEAR('2024-3-3')//获取日期年份,2024年
MONTH():提取月份。
select MONTH('2024-3-3')//获取日期月份,3月
DAY():提取日期中的天数。
select DAY('2024-3-3')//获取日期天数,3天
HOUR():提取小时数。
SELECT HOUR(NOW());//提取当前时间的小时
MINUTE():提取分钟数。
SELECT MINUTE(NOW());//提取当前时间的分钟
SECOND():提取秒数。
SELECT SECOND(NOW());//提取当前时间的秒数
DATE_FORMAT():将日期格式化为指定的格式。
//%Y表示年份,%m表示月份,%d表示日期
select DATE_FORMAT('2022-1-1','%y-%m-%d')://22-01-01
select DATE_FORMAT('2022-1-1','%y年-%m月-%d日')//22年-01月-01日
//%H表示小时,%i表示分钟,%s表示秒钟
SELECT TIME_FORMAT('21:36:28', '%H:%i:%s');//21:36:28
//日期时间格式化为“YYYY-MM-DD HH:MM:SS”格式
SELECT DATE_FORMAT('2022-03-24 21:36:28', '%Y-%m-%d %H:%i:%s')//2022-03-24 21:36:28
DATE_ADD():在日期上添加一个指定的时间间隔。
-- 语法:DATE_ADD(date,INTERVAL expr type)
-- date日期表达式,expr 参数是添加的时间间隔,type 参数
select date_add('2023-03-23',INTERVAL 7 DAY);//日期向后推7天
select date_add(now(),INTERVAL -7 DAY);//当前日期向前推7天
SELECT date_add(CURRENT_DATE(),INTERVAL 10 YEAR)//当前年份向后推10年,末尾的时间单位可以变换
DATE_SUB():从日期中减去一个指定的时间间隔。
//MySQL的DATE_SUB()函数用于从指定的日期中减去一个时间间隔。具体而言,它可以从一个日期或时间减去指定的天数、小时、分钟、秒等。它的语法为
DATE_SUB(date, INTERVAL expr unit);
//其中,date表示日期或时间,expr表示减去的时间间隔,unit表示时间间隔的单位,可以是DAY、HOUR、MINUTE、SECOND等
SELECT DATE_SUB(NOW(), INTERVAL 10 DAY);//从当前时间中减去10天
SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR);//从指定的日期中减去1小时
//除了以上两个例子,还可以根据需要使用不同的时间间隔单位和时间对象
来实现各种日期计算的需求。需要注意的是,如果要将一个日期加上一个时间间隔
可以使用DATE_ADD()函数
DATEDIFF():计算两个日期之间的天数差异。
//两个日期参数的位置可以交换,因为结果取绝对值
SELECT DATEDIFF(NOW(), '2022-07-01')//DATEDIFF函数可以计算两个日期之间的天数差异
17,UNIX_TIMESTAMP():返回一个时间戳
//时间戳是指格林威治时间1970年01月01日00时00分00秒
//(北京时间1970年01月01日08时00分00秒)起至现在的总秒数
select UNIX_TIMESTAMP()//返回一个unix时间戳
18,FROM_UNIXTIME()时间戳转换日期
\\时间戳转换日期
SELECT FROM_UNIXTIME(1612165200) AS date
SELECT UNIX_TIMESTAMP(NOW()) AS timestamp;\\获取当前时间的时间戳