Oracle数据库中SYSDATE - 1/8的含义是什么?
理解Oracle中
SYSDATE - 1/8的含义 嘿,我来帮你把这个表达式掰明白!
首先,Oracle里的SYSDATE函数返回的是数据库服务器的当前日期和时间,精确到秒级别。
然后重点来了:在Oracle中,对日期类型的值进行加减数字运算时,这个数字代表的是天数。也就是说:
SYSDATE + 1等于当前时间加1天SYSDATE - 0.5等于当前时间减12小时(因为0.5天就是半天)
那1/8对应的时长是多少呢?简单算一下:一天有24小时,24 * (1/8) = 3小时。所以SYSDATE - 1/8的意思就是当前时间往前推3小时。
回到你那条查询语句:
select JOB_ID from db where last_updated_date >= sysdate - 1/8
这条语句的作用就是筛选出last_updated_date字段值在最近3小时内的所有JOB_ID记录——换句话说,就是找那些在过去3小时里被更新过的任务ID。
如果以后遇到类似的表达式,比如SYSDATE - 1/24就是往前推1小时,SYSDATE - 1/4就是往前推6小时,你都可以用“天数转小时”的思路去换算~
内容的提问来源于stack exchange,提问作者AutoTester999




