lig*_*ght 9 oracle datetime plsql date-arithmetic
我datetime
在Oracle中有一个专栏(MM/DD/YYYY HH:MM:SS AM/PM),但当我这样做时:
SELECT MAX(D_DTM)-1 FROM tbl1
Run Code Online (Sandbox Code Playgroud)
......它可以追溯到一天.如何从列中删除一小时而不是一天?
我也注意到datetime
12AM 的记录看起来像MM/DD/YYYY而不是MM/DD/YYYY 00:00:00 ; 我不确定这是否重要.
A.B*_*ade 17
兰迪的答案很好,但你也可以使用间隔:
SELECT MAX(D_DTM)- interval '1' hour FROM tbl1
Run Code Online (Sandbox Code Playgroud)
或者使用该INTERVAL
功能.它有相同的结果,但我认为它读得更清楚 - 这当然只是一个意见:)
SELECT MAX(D_DTM) - INTERVAL '1' HOUR FROM tbl1
Run Code Online (Sandbox Code Playgroud)
关于该INTERVAL
函数的好处是,您可以在处理DATE
值时将间隔设置为年,月,日,小时,分钟或秒,但在处理月末日期时,月间隔可能会很棘手.
是的,1
示例中的引用是必需的.
您还可以使用特定于Oracle的NumToDSInterval
函数,该函数不太标准但更灵活,因为它接受变量而不是常量:
SELECT MAX(D_DTM) - NUMTODSINTERVAL(1, 'HOUR') FROM tbl1
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
31811 次 |
最近记录: |