SQL如何获取系统时间

例如:表pats_in_hospital,里面是有病人的出生日期birth_of_date,获取系统当前年月日,还要注意判断当前是不是过了病人的生日,若是过了,病人年龄应该是当前年-出生年+1=病人年龄,若没过,那就直接相减就是病人年龄age。谢谢诶

SQL如何获取系统时间
sql读取系统日期和时间的方法如下:
--获取当前日期(如:yyyymmdd)

select CONVERT (nvarchar(12),GETDATE(),112)

--获取当前日期(如:yyyymmdd hh:MM:ss)
select GETDATE()

--获取当前日期(如:yyyy-mm-dd)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-14
getdate()
相关函数
SELECT GETDATE(),YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE()),DATEDIFF(YEAR,'2000-08-14',GETDATE()),
DATEPART(YEAR,GETDATE());
第2个回答  2011-04-02
select case when getdate()<birth_of_date then partdate(getdate(),'yyyy')-partdate(birth_of_date,'yyyy') else partdate(getdate(),'yyyy')-partdate(birth_of_date,'yyyy')+1
end age from pats_in_hospital 没测试,用到一个partdate函数,截取日期年
第3个回答  2011-04-02
getdate()函数;,如果是sqlserver,那么有year()函数取出年份,其余自己解决。
第4个回答  2011-04-02
T-SQL:
select
case when month(getdate()) > month(birth_of_date) or (month(getdate()) = month(birth_of_date) and day(getdate()) > day(birth_of_date)) then datediff(year, birth_of_date, getdate()) + 1 else datediff(year, birth_of_date, getdate()) end as age
from pats_in_hospital本回答被提问者采纳
第5个回答  2017-08-17
select
case when to_char(sysdate,'mm-dd')<to_char(birth_of_date,'mm-dd') then to_number(substr(to_char(sysdate,'yyyy.mm.dd'),1,4))-to_number(substr(to_char(birth_of_date,'yyyy.mm.dd'),1,4))
when to_char(sysdate,'mm-dd')>=to_char(birth_of_date,'mm-dd') then to_number(substr(to_char(sysdate,'yyyy.mm.dd'),1,4))-to_number(substr(to_char(birth_of_date,'yyyy.mm.dd'),1,4))+1
else 0 end age
from pats_in_hospital
oracle中获取系统时间:sysdate