我有一个要求,我必须显示每天特定日期和时间之间的记录,例如。昨天上午 9 点到今天上午 9 点之间
Select * from sales where saledate between '24-OCT-17 09:00:00' to '25-OCT-17 09:00:00'
Run Code Online (Sandbox Code Playgroud)
在甲骨文中。
但不知道如何做到这一点。
小智 8
今天上午9 点可以编码为
trunc(sysdate) + 9/24
Run Code Online (Sandbox Code Playgroud)
昨天上午9点
trunc(sysdate) - 1 + 9/24
Run Code Online (Sandbox Code Playgroud)
或者,
trunc(sysdate) + interval '9' hour
Run Code Online (Sandbox Code Playgroud)
和
trunc(sysdate) - interval '1' day + interval '9' hour
Run Code Online (Sandbox Code Playgroud)
“昨天”的计算可以简化( - 15/24 而不是 - 1 + 9/24,类似地interval) - 但最好按照我的方式编写代码,因为它更清晰 - 更容易理解和维持。
trunc(sysdate)指今天开始的午夜 (00:00:00) 。在日期算术中,1表示一天;9/24意思是9个小时。
WHERE 子句可以写成
where saledate >= trunc(sysdate) - 1 + 9/24 and saledate < trunc(sysdate) + 9/24
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7719 次 |
| 最近记录: |