【sql:练习题 41-45】时间的用法

题目41 :按照出生日期来算,当前月日 < 出生年月的月日则,年龄减一(就是根据出生日期算,每个人的年龄)

分析:要引入时间差函数TIMESTAMPDIFF  ,

时间差函数TIMESTAMPDIFF 的用法:

TIMESTAMPDIFF函数,有参数设置,可以精确到天(DAY)、小时(HOUR),分钟(MINUTE)和秒(SECOND),使用起来比datediff函数更加灵活。对于比较的两个时间,时间小的放在前面,时间大的放在后面。

select TIMESTAMPDIFF(DAY, 时间A ,时间B);

意思是比较: 时间A 与时间B相差的天数

那么针对这一题目,我们要用year:

 

 

select student.id as 学生编号,student.stdentname as 学生姓名,
TIMESTAMPDIFF(YEAR,student.age,CURDATE()) as 学生年龄
from student

 

 

 

 题目42:查询本周过生日的学生

select *
from student
where WEEKOFYEAR(student.age)=WEEKOFYEAR(CURDATE());

 

WEEKOFYEAR(date)

返回日期的日历星期数作为范围从1到53的数字。WEEKOFYEAR()是一个兼容性函数,等同于WEEK(日期,3)。

 

 

43:查询下周过生日的学生

分析:这题与上一题目是一样的,只不过预期时间晚一周

select *
from student
where WEEKOFYEAR(student.Sage)=WEEKOFYEAR(CURDATE())+1;

 

44:查询本月过生日的学生

select month(createtime) from life_unite_product   --取时间字段的月值

select *
from student
where MONTH(student.age)=MONTH(CURDATE());



 

45:查询下月过生日的学生

分析:
这题与上一题目是一样的,只不过预期时间晚一月

select *
from student
where MONTH(student.Sage)=MONTH(CURDATE())+1;



这一期都是跟时间有关的,时间相关的函数还有很多没有用到,先写这么多吧,后面遇到了再写

 

posted @ 2019-08-19 17:50  初学者,方圆几里  阅读(1086)  评论(0编辑  收藏  举报