oracle数据库里两个字符型的日期数据怎样比较?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle数据库里两个字符型的日期数据怎样比较?相关的知识,希望对你有一定的参考价值。

oracle数据库里两个字符型的日期数据怎样比较?比如说一个是kssj,存的数据是
“20100825031000”,另一个是jssj,存的数据是“2010082503160000“。我想提取jssj比kssj大15分钟的数据,怎么做?
在加一个补充条件,我还有个要求是kssj要大于20100825000000。我试了试,怎么也不行啊。

select * from 表名 where to_date(jssj,'yyyymmddhh24miss')-
to_date(kssj,'yyyymmddhh24miss')>900/24/60/60

解释下:那两个日期要转成日期型来做比较
条件是大于15分钟,正常两个日期减得到的是天

所以要用900秒除24小时,除60分钟,除60秒,将这个15分钟转成天
参考技术A select * from 表名 where to_date(jssj,'yyyymmddhh24miss')-
to_date(kssj,'yyyymmddhh24miss')>900/24/60/60

解释下:那两个日期要转成日期型来做比较
条件是大于15分钟,正常两个日期减得到的是天

所以要用900秒除24小时,除60分钟,除60秒,将这个15分钟转成天
参考技术B 更正下,原来把 to_date 的格式串写错了,再加上您给的新的条件:

select * from tab_name
where
(
to_date('kssj','yyyymmddhi24miss') >
to_date('20100825000000','yyyymmddhi24siss'))
and
(
to_date('jssj','yyyymmddhi24miss') -
to_date('jssj','yyyymmddhi24miss')
)*24*60 >= 15;本回答被提问者采纳
参考技术C select * from tablename
where (to_date(jssj,'yyyymmddhh24miss')-to_date(kssj,'yyyymmddhh24miss'))*24*60>15

tablename请用你自己的表名替换

将字符串转换为带有附加时间的Oracle日期

我有两个要比较的值。这些示例如下:

  1. ''01/04 / 2020T07.08.45'
  2. '2020-04-01 14:46'

我想将第一个值转换为与第二个值相同的掩码,因此以后可以使用它连接两个表。

第一个值与第二个保存在不同的时区中。我还需要通过将两个小时添加到第一个值来进行转换,具体取决于我运行比较的时间。

使用子字符串不能解决我的问题,因为我无法在字符串中添加两个小时。 to_date函数也没给我带来什么。

您能帮我吗?

答案

您必须将两个值都转换为日期。

TO_DATE('2020-04-01 14:46', 'YYYY-MM-DD HH24:MI');
TO_DATE('01/04/2020T07.08.45', 'DD/MM/YYYYTZH.HH24.MI')

我不确定包含时区的日期。

以上是关于oracle数据库里两个字符型的日期数据怎样比较?的主要内容,如果未能解决你的问题,请参考以下文章

怎样修改oracle默认的日期格式

SQL 字符串类型的时间怎么比较大小

oracle 如何查询两个时间段里的每一天数据之和。(只有开始日期和结束日期,没有每一天日期)

ACCESS数据库里的时间类型能不能做大小比较?

sql语句中怎样比较两个日期的大小???

Oracle两个日期类型字段怎么比较大小