SQL入门之第二十讲——SQL日期函数介绍

本文详细介绍了MySQL中内置的日期函数,包括如何获取当前日期和时间、解析日期各个部分、格式化日期到不同格式,以及进行日期计算如增加或减少天数、计算日期间隔。实例演示了如何应用这些函数解决实际问题,如计算学生年龄。
摘要由CSDN通过智能技术生成

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 '格式化时间';

在这里插入图片描述
其他格式还有:

格式备注
%Y年,显示4位,例如:2022
%y年,显示2位,例如:22
%M月,英文名,例如:May
%m月,显示数值(01-12),例如:05
%D日,带英文后缀,例如:14th
%d日,显示数值(01-31,例如:14
%H小时(00-23),例如:16
%h小时(01-12),例如:4
%i分钟(00-59),例如:11
%s秒(00-59),例如:45
  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函数取小于年龄的最大整数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值