【发布时间】:2020-06-03 23:55:57
【问题描述】:
TIMESTAMPDIFF(HOUR, pk.consprtydate, rs.consprtydate)
想要两个日期的小时差并在 oracle sql 中提取小时
【问题讨论】:
TIMESTAMPDIFF(HOUR, pk.consprtydate, rs.consprtydate)
想要两个日期的小时差并在 oracle sql 中提取小时
【问题讨论】:
在 oracle 中,您可以通过以下两个日期字段相减轻松实现:
Date2 - Date1 -- returns number of days between dates
(Date2 - Date1)/24 -- returns number of days between dates
MONTHS_BETWEEN(Date1, Date2) -- returns number of months between dates
干杯!!
【讨论】:
exp 和 exp/24 不能给出相同的“日期之间的天数”...
这取决于数据类型。如果它们是 Oracle 类型的 TIMESTAMP,则按照方法 already answered here
如果它们是日期类型,那么——正如 Tejash 所说——简单的减法给出了天数的差异,然后你需要四舍五入到小时。 (整数部分为天 = 24 小时,小数部分为一天的小数部分)
例如)向下舍入到不带小数部分的整数小时数:
(天 * 24 小时,加上一天中的分数 * 一天中的 86400 秒/一小时中的 3600 秒)
SELECT trunc(date1 - date2) * 24 + trunc((mod (date1-date2,1) * 86400) / 3600)
FROM DUAL
【讨论】: