当前位置: 首页 > 知识库问答 >
问题:

使用to_date的Oracle日期比较不起作用

齐飞星
2023-03-14
Name       Type
ENAME      VARCHAR2(20) 
DOJ        DATE  

触发一个简单的选择:

从test1.tasty1中选择*;

ENAME                DOJ
sat                  08-DEC-16 

所以好吧--我知道DATE字段中有时间组件。
以下使用TRUNC的查询工作正常:

在SO上查看了以下内容:
Oracle TO_DATE不工作

所以不确定这里出了什么问题?

共有1个答案

公冶浩慨
2023-03-14

从你的问题和评论来看,这似乎是发生的事件的顺序。

您在表中执行了以下插入操作:

INSERT INTO test1.tasty1 VALUES ('sat', SYSDATE)

请记住,Oracle中的日期同时具有date和time组件。因此,即使您插入了日期'2016-12-08',您也插入了时间组件。因此,以下查询不返回任何记录:

SELECT * FROM test1.tasty1 WHERE DOJ = '2016-08-12'
SELECT * FROM test1.tasty1 WHERE TRUNC(DOJ) = '2016-08-12'
 类似资料:
  • 问题内容: 请有人帮忙…为什么查询不起作用.. ?? 问题答案: 在Oracle中,一个总有一个时间成分。您的客户端可能显示也可能不显示时间分量,但是当您尝试进行相等比较时,它仍然存在。您还总是希望将日期与日期而不是字符串进行比较,后者使用当前会话进行隐式转换,从而使它们相当脆弱。THat将涉及ANSI日期文字或显式调用 您可以使用该函数将截断到午夜 或者,您可以进行范围比较(如果您可以受益于的索

  • 我有一个客户对象类,它有一些变量,并且已经实现了一个关于其中一个变量的比较器。然而,我需要为不同的变量last_name实现另一个比较器。 因为我的Customer类中不能有2个compareTo()方法,所以我决定在这里专门创建一个Comparing类 但一旦触及Collections.sort(客户); 它不会激活下面的公共int比较(Customer Customer_1,Customerc

  • 所以今年早些时候,我在大学里接到了一个任务。任务是使用OOP程序创建一个停车场管理系统。例如,我们学习了如何使用继承、抽象类和实例。我已经完成了并通过了这个作业,所以这个问题只是为了知识目的。其中一个任务是按时间顺序对对象的 Array 列表进行排序。为此,我们学习了可比/比较器方法。但是,我无法理解它,也无法做到这一点。问题是,我们必须对数组列表中的“Vehicle”对象中的“DateTime”

  • 我有两个字符串格式的日期:说,格式为。比较日期1和日期2的相等性的最佳方法是什么?我不关心时间,只关心日、年、月。我应该将它们转换为即时并进行比较吗?

  • 我做了一个表单来更新历史数据和一个子表单,用来检查结果!除了一个小问题外,一切都很好。

  • 我使用以下sql将字符串与日期oracle进行比较,但得到的结果不正确。我尝试了to\u date、to\u char选项,但没有得到任何正确的结果。 地点日期1:10-JUN-2101.00.00.000000000 AM日期2:10-JUN-2021 01:00 上述sql返回上述Date1和Date2的行,尽管它们相等。Date1也是varchar格式,Date2是带有本地时区格式的时间戳(