MySQL 基础教程-04 日期计算

MySQL提供了用于计算日期的函数,例如计算年龄或者日期的特定部分。
要肯定你的宠物有多大了,可使用 TIMESTAMPDIFF() 函数,这个函数的第一个参数指定比较结果展现的单位,第二三个参数是两个将要比较的日期,下列查询显示了宠物的出生日期,当前日期以及宠物的年龄,结果使用了别名 age ,这样结果列名更有意义。ide

MySQL 基础教程-04 日期计算
查询成功了,可是若是结果以特定顺序展现,则更有利于咱们查看。能够经过ORDER BY name子句对结果按name列排序:
MySQL 基础教程-04 日期计算函数

若是要对结果按年龄排序,仅需更改ORDER BY子句:3d

MySQL 基础教程-04 日期计算

可使用相似的方法查询动物死时的年龄,能够经过检查death的值是否为NULL来查出已经死亡的动物,而后计算出生和死亡的时间差值:blog

MySQL 基础教程-04 日期计算

查询使用了death IS NOT NULL而不是 death <> NULL ,这是由于NULL是一个特殊的值,不能使用常规的比较操做符进行比较。
若是想知道哪些动物的生日在下个月,该怎么办呢?对于这类计算,年和日期是无关的信息,咱们仅须要提取出生日期中的月份,MySQL提供了几个函数用来从日期中提取信息,例如YEAR(),MONTH()和DAYOFMONTH(),这里使用MONTH()函数是适合的。简单示例以下:
MySQL 基础教程-04 日期计算排序

若是当前是4月份,查找下个月过生日的动物:教程

MySQL 基础教程-04 日期计算

若是当前月份是12月,那么这个查询会有一点复杂,咱们不能仅仅是对当前月份加1,而后查询出生在13月的动物,由于根本没有这个月份,相应的,咱们应该查找出生在1月份的动物。咱们能够经过写查询语句来解决这个问题,不管当前月份是什么。DATE_ADD()用于对给定日期增长时间间隔。若是要对CURDATE()的时间值增长1个月,而后用MONTH()查出日期月份,结果就是咱们要求的月份:it

MySQL 基础教程-04 日期计算

另一种方法是查询当前月份,月份加1获得下一个月的月份,而后使用取模(MOD)函数将12月份的月转换成0。class

MySQL 基础教程-04 日期计算

MONTH()函数返回一个1-12之间的数值, MOD(something,12) 函数返回一个0-11之间的值。所以加1必定是在MOD()函数以后。
若是计算使用了无效日期,则计算失败并产生警告:基础

MySQL 基础教程-04 日期计算

相关文章
相关标签/搜索