6.2 MySQL时间和日期函数

发布于:2025-02-10 ⋅ 阅读:(43) ⋅ 点赞:(0)

以前我们就用过now()函数来获得系统时间,用datediff()函数来计算日期相差的天数。我们在计算工龄的时候,让两个日期相减。那么其中的这个now函数返回的就是当前的系统日期和时间。

1. 获取系统时间函数

now()函数,返回的这个日期和时间的格式是这样子的。Y代表的是年份,四个Y的话就代表是四位的这个年份数字大写的M代表的是max月份,然后D代表的是date,就是日期,就是小时、分钟,秒,这个小时默认是24小时制的。这一点大家注意一下,咱们数据库里边默认的最小的时间单位就是秒,不像编程语言,它最小的时间单位是毫秒。

2.日期格式化参数

DATA_FORMAT() 这个函数能帮我们从日期中提炼出非常有用的信息。这个函数的语法如下,第一个参数就是一个日期,第二个参数是一个表达式

占位符 作用 占位符 作用
%Y 年份 %m 月份
%d 日期 %w 星期(数字)
%W 星期(名称) %j 本年第几天
%U 本年第几周 %H 小时(24)
%h 小时(12) %i 分钟
%s %r 时间(12)
%T 时间(24)

练习1: 查询员工入职的年份


select ename,date_format(hiredate,"%Y") from t_emp

练习2:利用日期函数,查询明年你的生日是星期几

select date_format("2026-01-01","%w");

练习3:利用日期函数,查询1981年上半年入职的员工有多少人 

select
count(*)
from t_emp
where date_format(hiredate,"%Y")=1981
and date_format(hiredate,"%m")<=6

3. 日期计算的注意事项

在mysql数据库里边两个日期是不能直接进行加减乘除运算的,包括日期也不能和数字去加减乘除运算。因为咱们这个日期的运算对应的那个函数,比如说想算一下两个日期之间差了多少天,datediff(),可以把这个相差的天数帮我们算出来。如果说直接用两个日期进行相减的话,那么日期和日期没法直接相减,因为数字才可以加减乘除运算。所以mysql会把这个日期转成数字。

4. 日期偏移计算

首先我们看一下日期偏移计算的这个函数。比如说我现在想计算100天之后是几月几号儿,能不能单纯的把日期加上100,这是不对的。那么日期偏移计算的这个函数叫做date_add()的这个函数既可以往前去偏移日期,也可以往后去偏移日期。比如说一百天之后是几月几号,那你就写上是正100就行了。如果说想看一百天之前是几月几号,那你写一个-100就行了

 练习4:查询100天后是几月几号

select date_add(now(),interval 100 day);

练习5:6个月零3天前是几月几号

select date_add(date_add(now(),interval 6 month),interval -3 day);

5. 计算日期之间相隔的天数

DATEDIFF()函数


网站公告

今日签到

点亮在社区的每一天
去签到