Oracle sysdate差异(如何查询sysdate和我的表日期)
我是甲骨文的新手 我有一些问题要问 我正在尝试进行查询,以解决sysdate()和我自己表中的日期之间的差异Oracle sysdate差异(如何查询sysdate和我的表日期),oracle,Oracle,我是甲骨文的新手 我有一些问题要问 我正在尝试进行查询,以解决sysdate()和我自己表中的日期之间的差异 select to_char(to_char(sysdate,'YYYYMMDDHH24MISS') - to_char(S_DATE||S_HOUR||':00' , 'YYYYMMDDHH24MISS')) from dual; 我就是这样做的 在我的表中,我有两列“S_DATE”和“S_HOUR”,表示时间 因此,我想知道时差以及如何进行此查询。 提前谢谢
select to_char(to_char(sysdate,'YYYYMMDDHH24MISS')
- to_char(S_DATE||S_HOUR||':00' , 'YYYYMMDDHH24MISS'))
from dual;
我就是这样做的
在我的表中,我有两列“S_DATE”
和“S_HOUR”
,表示时间
因此,我想知道时差以及如何进行此查询。
提前谢谢。您可以通过简单的-(减号)运算符获得两个日期之间的差。但是,首先需要使用
将日期字符串转换为日期
SQL Fidlle中的示例是
示例查询:
select
sysdate , S_DATE || ' ' || S_HOUR "Date",
round((sysdate - to_date(s_date || s_hour ,' YYYY/MM/DDHH24:MI') ) * 24 * 60, 2) "Dif In Min",
round((sysdate - to_date(s_date || s_hour ,' YYYY/MM/DDHH24:MI') ) * 24 * 60 * 60, 2) "Dif In Sec"
from myDate
为什么不把你的日期储存成一个日期呢?那么就不需要转换了。只需减去这两个值。刚接触甲骨文的人通常不了解日期。日期是时间点,所以日期和时间。始终将日期存储为日期,而不是数字或字符串。不能将一个varchar与另一个varchar“相减”。您需要使用realdate
值。去掉sysdate上的to_char()
,并在表列上使用to_date()
将它们转换为适当的日期值。