【问题标题】:how to convert mysql TIMESTAMPDIFF to oraclesql query [duplicate]如何将mysql TIMESTAMPDIFF转换为oraclesql查询[重复]
【发布时间】:2020-06-03 23:55:57
【问题描述】:

TIMESTAMPDIFF(HOUR, pk.consprtydate, rs.consprtydate)

想要两个日期的小时差并在 oracle sql 中提取小时

【问题讨论】:

标签: sql oracle


【解决方案1】:

在 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 不能给出相同的“日期之间的天数”...
【解决方案2】:

这取决于数据类型。如果它们是 Oracle 类型的 TIMESTAMP,则按照方法 already answered here

如果它们是日期类型,那么——正如 Tejash 所说——简单的减法给出了天数的差异,然后你需要四舍五入到小时。 (整数部分为天 = 24 小时,小数部分为一天的小数部分)

例如)向下舍入到不带小数部分的整数小时数:

(天 * 24 小时,加上一天中的分数 * 一天中的 86400 秒/一小时中的 3600 秒)

SELECT   trunc(date1 - date2) * 24    +  trunc((mod (date1-date2,1) * 86400) / 3600) 
FROM DUAL

【讨论】:

    猜你喜欢
    • 2011-07-28
    • 2013-09-29
    • 2021-04-03
    • 2015-03-22
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多