根据时间计算时间差
函数TIMESTAMPDIFF(unit,begin,end)
unit
支持的单位有:MICROSECOND
,SECOND
,MINUTE
,HOUR
,DAY
,WEEK
,MONTH
,QUARTER
,YEAR
.begin
,end
不需要相同的数据结构,可以存在一个为Date一个DateTime
以下是计算年份差demo:
SELECT TIMESTAMPDIFF(YEAR,'2010/10/10',CURDATE()) 年份差;
SELECT TIMESTAMPDIFF(YEAR,'2010-10-10',CURDATE()) 年份差;
SELECT TIMESTAMPDIFF(YEAR,20101010,CURDATE()) 年份差;
三个函数的区分
NOW()
,CURDATE()
,CURTIME()
:
#工作中的一个demo
#根据以下筛选条件算出总计:
#1、身份证前2位数字,非54、62、63、64、65
#2、手机号前2位数字,非16、19
#3、年龄满足25-45
SELECT COUNT(*) FROM `user`
WHERE id_num!=''
AND LEFT(id_num,2) NOT IN (54,62,63,64,65)
AND LEFT(mobile,2) NOT IN (16,19)
AND TIMESTAMPDIFF(YEAR,SUBSTRING(id_num,7,8),CURDATE()) BETWEEN 25 AND 45;