Sql 使用日期和时间的比较更新查询

Sql 使用日期和时间的比较更新查询,sql,oracle,Sql,Oracle,我有一个查询,在某些条件下更新某些字段 条件 时差不超过1小时,日期可以相同 select * from Table where user_cd = 'HARSHIT' and abs(sysdate-brth_dt) <= 1/24 但有一个条件也存在,比如在晚上,用户尝试在23:30更新,之后,他在第二天00:15尝试更新,因此差异为45分钟,但更新必须执行 select brth_dt from Table where user_cd = 'HARSHIT'

我有一个查询,在某些条件下更新某些字段

条件

时差不超过1小时,日期可以相同

select *
  from Table
  where user_cd = 'HARSHIT'
        and abs(sysdate-brth_dt) <= 1/24
但有一个条件也存在,比如在晚上,用户尝试在23:30更新,之后,他在第二天00:15尝试更新,因此差异为45分钟,但更新必须执行

select brth_dt from Table where user_cd = 'HARSHIT';

select sysdate from dual;

select brth_dt from Table
where user_cd = 'HARSHIT' 
  and sysdate-(1/24) < BRTH_DT;
从表中选择brth_dt,其中user_cd='HARSHIT';
从双通道中选择sysdate;
从表中选择brth_dt
其中用户_cd='HARSHIT'
和系统日期-(1/24)
上述查询的结果

BRTH_DT 2016年2月25日12:30:00

选择1行

to_char(col_name, 'yyyy-mm-dd hh24:mi:ss')
系统日期 2016年2月24日16:7:58

选择1行

to_char(col_name, 'yyyy-mm-dd hh24:mi:ss')
BRTH_DT 2016年2月25日12:30:00

选择1行

to_char(col_name, 'yyyy-mm-dd hh24:mi:ss')

只要使用24小时格式,我想就可以了。

我认为没有理由将日期转换为字符串。。。如果您需要检查两个日期的间隔是否在一小时之内,只需计算日期,然后比较:

select * from sir_people 
where user_cd = 'HARSHIT' 
  and BRTH_DT BETWEEN sysdate-(1/24)
                  AND sysdate;
为了便于比较,在日期上添加字符是有根本缺陷的逻辑,应该避免

[编辑]根据提供的示例:您似乎希望排除将来的日期,而只包括从现在到一小时之前的日期。
已更新查询以适应该附加要求。

只需将所需条件转换为sql: “时差不超过1小时,日期可以相同。”

选择*
从桌子上
其中用户_cd='HARSHIT'

和abs(sysdate-brth_dt),如果您在2016年2月24日00:10:00,并且希望检查过去1小时内的日期,则从该日期减去1小时。。获取:
2016年2月23日23:10:00
。。。(即sysdate-(1/24)),然后比较大于该值的任何值(即:
BRTH\u DT>sysdate-(1/24)
)。。。是的,它将在当前时间的1小时内提取日期。如果您提供更完整的样本数据等,则更容易显示。;)嗨,这对date不起作用。。比如,如果日期是2016年2月25日,系统日期是2016年2月24日,那么它应该不起作用,但从您的查询来看,它起作用了。查看date1=24/02/2015 08:40:00和date2=25/02/2015 08:40:00都是24小时格式,应该不起作用,但根据您的查询,它只起作用。请发布一个完整的示例,包括示例数据,以及您希望在原始帖子中看到的内容。您一直在更改其中的名称,所以我不知道date1在您最初的示例中是否与sysdate相同,或者date2是。。。(如果date2和sysdate相同,它绝对会工作-它不会拉它,因为它在过去超过一个小时。如果date1和sysdate相同,那么您正在比较当前日期和未来日期,我不知道您正在尝试做什么)。。请提供完整的样本数据,以便我们能够提供帮助。嗨,我没有得到任何0.041666666667的值1/24 0.444606481481481 sysdate-brth_dt的值sysdate和brth_dt之间的差0.444606481481481以天为单位。当你把它乘以24,你会得到10个多小时。它不应该选择,对吗?也许我不明白你的意思。