首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >oracle sql sysdate

oracle sql sysdate
EN

Stack Overflow用户
提问于 2016-03-01 20:46:57
回答 2查看 114关注 0票数 0

全,

我有一个sql,如下所示,它用于informatica查找sql。

当时间是凌晨2时至0时,select * from table where load_dt = trunc(sysdate)

当时间介于nextday 00.30到凌晨2时之间时,相同的sql应读为

代码语言:javascript
复制
select * from table where load_dt = trunc(sysdate-1)

如何使这两个sql在单个sql中生成?

有可能吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-01 20:57:52

我不确定我是否完全理解这个问题,但我假设,如果时间小于2时,您想从sysdate中减去1,否则保持当前sysdate。

你说过,凌晨2点到凌晨0点,早上0点半到凌晨2点…但我把它解释成了上面。

代码语言:javascript
复制
Select * 
from table 
where load_Dt = trunc(sysdate - case 
   when TO_CHAR(SYSTIMESTAMP,'HH24') < 2 then 1 else 0 end)

代码语言:javascript
复制
Select * 
from table 
where load_Dt = trunc(sysdate - case 
   when EXTRACT(HOUR FROM SYSTIMESTAMP) < 2 then 1 else 0 end

取决于是否需要时区偏移。

票数 0
EN

Stack Overflow用户

发布于 2016-03-01 21:01:55

在截断日期之前,您可以减去两个小时:

代码语言:javascript
复制
select *
from table
where load_dt = trunc(sysdate - 2/24.0) ;

甲骨文也支持- interval '2' hour,但我有时很老套。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35733139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档