oracle中计算两个日期之间的天数

病人的入科时间是类型是discharge_date_time,出科时间类型是admission_date_time,表为transfer,如何计算入科和出科之间的天数,即住院天数。

我的计算

select(To_date('discharge_date_time') - To_date('admission_date_time') )住院天数 FROM transfer;

运行时提示select下面为无效字符,该如何解决?

你先看看你那两个字段是date型还是varchar型
date型的话
select discharge_date_time-admission_date_time from transfer

字符型的话
select to_date(discharge_date_time,'yyyy-mm-dd')-to_date(admission_date_time,'yyyy-mm-dd') from transfer

前一个存在的情况是,如果你日期中包含时分秒,结果可能是小数
后一个的情况是,主要看你字符存储的格式
如果是2013-08-01就用上边的,要是20130801,那么yyyy-mm-dd就得改成yyyymmdd,如果带时间的话那就另说吧
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-07-30
你需要先构造一个休息日列表,这个比较麻烦。
剩下的用sql语句来完成就行。本回答被网友采纳
第2个回答  2013-08-05
首先你要查询出2个做减法的数据吧?直接写两个列名sql怎么区分查询了几个数值,如果是多个你让它怎么算呀

最好是查处要计算的数据,通过java或者其他语言,做逻辑运算。。。
相似回答