SQL入门之第二十讲——SQL日期函数介绍
MySQL内置的日期函数,主要包括获取日期,格式化日期,计算日期
1.获取日期函数
-
MySQL内置的获取日期时间的函数:
select NOW() as 当前日期+时间, CURDATE() as 当前日期, CURTIME() as 当前时间;
-
获取具体年月日的函数:
select YEAR(2022-05-14 15:53:28) AS 年, MONTH(2022-05-14 15:53:28) AS 月, DAY(2022-05-14 15:53:28) AS 日, HOUR(2022-05-14 15:53:28) AS 小时, MINUTE(2022-05-14 15:53:28) AS 分钟, SECOND(2022-05-14 15:53:28) AS 秒, DAYNAME(2022-05-14 15:53:28) AS 星期几, MONTHNAME(2022-05-14 15:53:28) AS 几月;
实例1:将学生表中,找出生日Sage为1995年的学生记录
select * from students where YEAR(Sage) = 1996
2.格式化日期函数
-
格式化日期函数主要使用 DATE_FORMAT、TIME_FORMAT 函数对日期和时间进行格式化
select NOW() as 现在时间, DATE_FORMAT(NOW(),%y.%m.%d) as 格式化日期, TIME_FORMAT(NOW(),%h:%i:%s) as 格式化时间;
其他格式还有:
select NOW() as 现在时间, DATE_FORMAT(NOW(),%H)
3.计算日期函数
-
在实际业务中,我们经常需要计算日期和时间,比如在当前日期的基础上减少一天,或者计算日期间隔。
1. 在当前日期的基础上增加或者减少天数
select NOW() AS 现在时间, DATE_ADD(NOW(),INTERVAL 1 DAY) as 增加1天, DATE_SUB(NOW(),INTERVAL 2 DAY) as 减少2天;
还可以增加或者减少年、月、小时、分钟:
select NOW() AS 现在时间, DATE_ADD(NOW(),INTERVAL 1 YEAR) as 增加1年, DATE_SUB(NOW(),INTERVAL 1 MONTH) as 减少1月, DATE_SUB(NOW(),INTERVAL 1 HOUR) as 减少1小时;
2. 计算两个日期间隔天数
-
DATEDIFF函数字计算是是会忽略时间部分,只计算日期差异
select DATEDIFF(2022-05-14,2021-05-14) as 间隔天数, DATEDIFF(2022-05-14 01:00,2022-05-13 23:00) as 间隔天数;
实例2:在学生表中,通过学生生日Sage,计算每个学生的年龄。
select DATE_FORMAT(NOW(),%Y-%m-%d) as 今天日期, Sname as 学生姓名, FLOOR(DATEDIFF(NOW(),Sage)/365) as 学生年龄 from students;
解析: 通过DATEDIFF函数计算现在时间与学生年龄的相差天数,在除以365得到换算后年数,在使用FLOOR函数取小于年龄的最大整数。
下一篇:
javaweb中怎样实现登录功能