求一个sql 语句 + 高分,高分
//获取相差的年份即年龄
1,select EXTRACT(year FROM to_date('2015-03-30','yyyy-mm-dd')) - EXTRACT(year FROM to_date('1990-03-30','yyyy-mm-dd')) years from dual;
//获取当前时间
2,select to_char(sysdate,'yyyy-MM-dd') from dual
//获取员工档案中用户生日,
3,select HR_NAME_BIRTHDAY from hr_filemanager
??求如何将这3个sql 拼成一个计算年龄差的sql
结果应该是2-1 = 年龄 ,但是不知道这个sql 要怎么写。1为2个年龄相减的sql 语句。
------解决方案--------------------你这个Oracle的吧?不应该发到SQLServer专区,不过貌似也没关系,你如果仅仅要相减,那就试试:
SELECT HR_NAME_BIRTHDAY,b.nowdate
FROM hr_filemanager CROSS JOIN (select to_char(sysdate,'yyyy-MM-dd') as nowdate from dual) AS B
上面语句就出来两列,然后用你第一个语句计算就可以了,因为不懂Oracle语法,所以就不写那么多,等下报错更麻烦,这个语句虽然是T-SQL写法,不过应该Oracle也支持的。
------解决方案--------------------思路就是用笛卡儿积,你用Oracle的方法算一下吧。
------解决方案--------------------select extract(year from to_date(HR_NAME_BIRTHDAY,'yyyymm'))-extract(year from sysdate) from hr_filemanager
------解决方案--------------------select extract(year from to_date(HR_NAME_BIRTHDAY,'yyyymmdd'))-extract(year from sysdate) from hr_filemanager
少了个dd.
------解决方案--------------------帮顶
------解决方案--------------------to_char???oracle?????
------解决方案--------------------都说叫你去Oracle问咯,思路就是用笛卡儿积....