目录
12,DATE_FORMAT():将日期格式化为指定的格式。
13,DATE_ADD():在日期上添加一个指定的时间间隔。
14,DATE_SUB():从日期中减去一个指定的时间间隔。
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;\\获取当前时间的时间戳
好啦,大致内容就更新到这里,谢谢观看
伊利小课堂到此结束,下次再见~