MySQL经典练习题(八)
2020-07-29 20:14
351 查看
-- 40. 查询各学生的年龄,只按年份来算
[code]select student.sid as 学生编号,student.sname as 学生姓名, timestampdiff(year,student.sage,curdate()) as 学生年龄 from student;
[code]-- 函数说明 timestampdiff(interval,datetime_expr1,datetime_expr2)。 -- timestampdiff函数和datediff函数说明 timestampdiff(interval,datetime_expr1,datetime_expr2)。 说明: -- 返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。 -- 为datetime_expr2 - datetime_expr1 -- 其结果的单位由interval 参数给出。该参数必须是以下值的其中一个: -- FRAC_SECOND。表示间隔是毫秒 -- SECOND。秒 -- MINUTE。分钟 -- HOUR。小时 -- DAY。天 -- WEEK。星期 -- MONTH。月 -- QUARTER。季度 -- YEAR。年 例如:timestampdiff(month,datetime_expr1,datetime_expr2) 表示datetime_expr2 - datetime_expr1的月数 datediff(datetime_expr1,datetime_expr2)函数 计算datetime_expr1-datetime_expr2之间差多少天(和timestampdiff相减相反) 获取当前日期和时间 -- now() -->获取当前日期和时间 2020-07-29 19:25:57 -- curdate() -->获取当前日期 2020-07-29
-- 41. 按照出生日期来算,当前月日 < 出生年月的月日则,年龄减一
[code]SELECT SNAME,DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(Sage, '%Y') - (case when (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(Sage, '00-%m-%d')) then 1 else 0 end) AS 年龄 from student; DATE_FORMAT 和 timestampdiff 的区别 DATE_FORMAT 可以单独提取日期,例如年,月,日等 语法:select DATE_FORMAT(now(),'%Y'); 输出:2020 %a 缩写星期名 %b 缩写月名 %c 月,数值 %D 带有英文前缀的月中的天 %d 月的天,数值(00-31) %e 月的天,数值(0-31) %f 微秒 %H 小时 (00-23) %h 小时 (01-12) %I 小时 (01-12) %i 分钟,数值(00-59) %j 年的天 (001-366) %k 小时 (0-23) %l 小时 (1-12) %M 月名 %m 月,数值(00-12) %p AM 或 PM %r 时间,12-小时(hh:mm:ss AM 或 PM) %S 秒(00-59) %s 秒(00-59) %T 时间, 24-小时 (hh:mm:ss) %U 周 (00-53) 星期日是一周的第一天 %u 周 (00-53) 星期一是一周的第一天 %V 周 (01-53) 星期日是一周的第一天,与 %X 使用 %v 周 (01-53) 星期一是一周的第一天,与 %x 使用 %W 星期名 %w 周的天 (0=星期日, 6=星期六) %X 年,其中的星期日是周的第一天,4 位,与 %V 使用 %x 年,其中的星期一是周的第一天,4 位,与 %v 使用 %Y 年,4 位 %y 年,2 位
-- 42. 查询本周过生日的学生
[code]select * from student where weekofyear(student.sage) = weekofyear(curdate()); 其中:weekofyear 用法 weekofyear(date)函数返回给定日期的周数; date的日期形式为 2020-07-29
-- 43. 查询下周过生日的学生
[code]select * from student where weekofyear(student.sage) = weekofyear(curdate()) + 1;
-- 44. 查询本月过生日的学生
[code]select * from student where month(student.Sage)=month(curdate()); 其中:month 用法 month(date)函数返回给定日期的周数; date的日期形式为 2020-07-29
-- 45. 查询下月过生日的学生
[code]select * from student where month(student.Sage)=month(curdate()) + 1;
相关文章推荐
- MySQL-经典练习题
- MySQL经典练习题及答案
- MySQL 经典练习题
- MySQL经典SQL语句练习题分析
- SQL经典练习题50--mysql
- MySQL,SQLl经典练习题、面试题及答案
- MySQL经典50道练习题
- Mysql经典练习题50题
- mysql经典50道练习题
- 【MySQL】经典数据库SQL语句编写练习题——SQL语句扫盲
- 【MySQL】经典数据库SQL语句编写练习题——SQL语句扫盲
- 【MySQL】经典数据库SQL语句编写练习题——SQL语句扫盲
- MySQL的经典用法(三)----海量数据统计处理,模拟物化视图
- oracle经典练习题(一)
- mysql 5.0存储过程学习总结 (经典)
- 27.iglva【MySQL】20个经典面试题,全部答对月薪10k+
- mysql 练习题
- 一个经典的JDBC连接MySQL的程序
- MySQL查询语句练习题
- mysql 经典sql语句