【发布时间】:2021-06-04 21:14:45
【问题描述】:
我写了这行代码来获取日期和时间,从 int 数据类型到时间戳:
(to_timestamp(cast(theDate* 1000000 + theTime as varchar2(255)), 'YYYYMMDDHH24MIss'))
我需要将它添加到 where 子句中以仅获取日期 + 时间小于 5 小时的位置
当前日期,为了更清楚,我需要查询仅显示 sysdate 过去 5 小时的日期。
类似这样的:
Where hour((to_timestamp(cast(theDate* 1000000 + theTime as varchar2(255)), 'YYYYMMDDHH24MIss'))) - hour(sysdate) < 5
如果我可以在 oracle 上使用 datediff,我将使用它,例如:
where datediff('HOUR', (imrecorddate, imrecordtime), sysdate)
我想得到一些帮助,因为我没有在网上找到它。
谢谢。
【问题讨论】:
-
样本数据和所需结果会有所帮助。这是什么意思“只显示 sysdate 过去 5 小时的日期。”
-
将日期和时间分别存储为整数的原因是什么?如果您将其直接存储为日期时间(在 Oracle 中称为
DATE),则不需要所有这些转换,并且编写查询会容易得多。