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

使用oracle将日期格式与字符串进行比较

简培
2023-03-14

我使用以下sql将字符串与日期oracle进行比较,但得到的结果不正确。我尝试了to\u date、to\u char选项,但没有得到任何正确的结果。

select order from table where Date1 <>  to_char(Date2, 'DD-MON-YYYY HH24:MI');

地点日期1:10-JUN-2101.00.00.000000000 AM日期2:10-JUN-2021 01:00

上述sql返回上述Date1和Date2的行,尽管它们相等。Date1也是varchar格式,Date2是带有本地时区格式的时间戳(6)。

共有1个答案

韦阳辉
2023-03-14

根据您的表格和数据:

Date1是varchar格式,Date2是带有本地时区格式的时间戳(6)。

CREATE TABLE table_name (
  date1 VARCHAR2(20),
  date2 TIMESTAMP(6) WITH LOCAL TIME ZONE
);

INSERT INTO table_name (
  date1,
  date2
) VALUES (
  '10-JUN-2021 01:00',
  TIMESTAMP '2021-06-10 01:00:00.000000'
);

您可以将日期1转换为时间戳并比较:

SELECT *
FROM   table_name
WHERE  TO_TIMESTAMP( Date1, 'DD-MON-YYYY HH24:MI' ) <> Date2;

或者,将日期2转换为字符串:

SELECT *
FROM   table_name
WHERE  Date1 <> TO_CHAR( Date2, 'DD-MON-YYYY HH24:MI' );

它们都输出零行:

 类似资料:
  • 因此,我正在研究如何用javascript中的字符串进行日期比较,我发现大量堆栈溢出的帖子说你不能这样做。 参考: 如何在JavaScript中比较两个字符串日期? 用JavaScript比较两个日期 然而,下面的代码本与您所期望的完全一样,只使用字符串,当其中一个是YYYY-MM-DD而另一个是yyyy/mm/dd时,它甚至可以工作。有谁能解释一下为什么这样做,为什么stack overflow

  • 我犯了一个错误,在数据库中将日期存储为VARCHAR,这里看起来是2018年12月2日,我使用carbon创建了一个变量来获取14天的当前日期。

  • 我的日期列值是字符串格式,显示的值像“44370.4087037037”、“44370.4087384259”。而我希望它们是MM/DD/YYYY HH: MM格式。我必须在Oracle中输入它到数据库中。我的查询是- 我应该如何转换它?我试图\u DATE,convert,cast-不起作用-出现错误-[错误]执行(5:23):ORA-00907:缺少右括号

  • 问题内容: 我想要这种格式 问题答案: 您需要先 解析 日期字符串(使用方法),才能 使用与格式匹配的格式获取对象。 然后使用所需的格式来 格式化 Date对象(Use 方法)以获取字符串。 输出:- 第一种格式是RFC 822 TimeZone与您的日期字符串匹配。有关在日期格式中使用的其他各种选项,请参见。

  • 我有一个JSON对象,它有几个日期,例如:15/12/2005或14/12/2012。 我需要将月份和日期与今天的月份和日期进行比较;年份无关紧要。我正在这样做: 这会选择日期,但返回2000-12-15。我只想要日期和月份。 什么时候会比较下一个方法 虽然当前日期匹配,但测试不通过。

  • 我在presto上,把日期格式化为varchar,看起来像- 我如何转换这个?