MYSQL中年龄的计算:
select emp_name,emp_sex,emp_birth,curdate(),(year(curdate())-year(emp_birth)+(DATE_FORMAT(emp_birth,'%m%d')<=(DATE_FORMAT(curdate(),'%m%d')))) as '年龄' from employee;
Oracle中年龄的计算:
SELECT Trunc(MONTHS_BETWEEN(SYSDATE,BIRTH_DATE)/12) FROM 某表
Trunc函数在这里对带有小数位数的数字取整数部分;
SYSDATE为oracle的获取当前日期的函数;
BIRTH_DATE为我自己的数据库表中存储生日日期的字段。
Sql Server中年龄的计算:
select datediff(year,birthdate,getDate()) as '年龄' from 表名;
Case when then else 用法:
select emp_id,emp_name,emp_joindate,case when (year(curdate())-year(emp_joindate))>=1 then '元老级员工' else '即将成为员老级员工' end from employee;
Mysql中datediff()与timediff()的用法:
DATEDIFF() 返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2 为日期或 date-and-time 表达式。计算中只用到这些值的日期部分。
mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
-> 1
mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
-> -31
================
当前日期用curdate() 来获取.
TIMEDIFF() 返回起始时间 expr 和结束时间expr2 之间的时间。 expr 和expr2 为时间或 date-and-time 表达式,两个的类型必须一样。
mysql> SELECT TIMEDIFF('2000:01:01 00:00:00',
-> '2000:01:01 00:00:00.000001');
-> '-00:00:00.000001'
mysql> SELECT TIMEDIFF('1997-12-31 23:59:59.000001',
-> '1997-12-30 01:01:01.000002');
-> '46:58:57.999999'