sql - 在oracle中使用时间戳比较两个日期

标签 sql spring oracle hibernate

select * 
  from  table1 rcd, 
        table2 company 
 WHERE to_timestamp(to_char(rcd.date), 'YYYY-MM-DD HH:MI:SS') >
       to_timestamp(to_char(company.date), 'YYYY-MM-DD HH:MI:SS') 

我想使用oracle中的时间戳(to_timestamp)来比较我的两个日期字段,并且我使用上面的查询,它没有给出正确的结果(给出不大于company.date的记录) )。

知道如何在 Oracle 中使用 to_timestamp 进行比较。

最佳答案

to_char(<date>)不会生成您正在使用的格式 to_timestamp() 。最安全的方法是重复格式参数:

WHERE to_timestamp(to_char(rcd.date, 'YYYY-MM-DD HH:MI:SS'), 'YYYY-MM-DD HH:MI:SS') >
      to_timestamp(to_char(company.date, 'YYYY-MM-DD HH:MI:SS'), 'YYYY-MM-DD HH:MI:SS') 

等等。最安全的方法是放弃所有这些转换,只需执行以下操作:

select * 
from table1 rcd join
     table2 company 
     on rcd.date > company.date;

关于sql - 在oracle中使用时间戳比较两个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18846666/

相关文章:

java - 数据库中的日期格式是 yyyy/MM/dd 我希望它是从 MM/dd/yyyy

java - 如何使用 Freemarker 变量解析 String HTML

spring - 由 : java. lang.NoClassDefFoundError 引起:org/springframework/boot/bind/RelaxedPropertyResolver - 微服务

spring - 如何在Grails服务中访问 session Cookie?

sql - 在 Oracle 数据库中搜索 Long 数据类型的最佳方法是什么?

mysql - 仅当新记录为新记录时才计算给定日期的新记录数

mysql - 复合 Mysql join sql 中每组所需的最大 n

php - 为什么它不显示当前时区?

java - 如何用Java连接RMAN?

mysql - (+) mysql 中外连接的语法