gpt4 book ai didi

Oracle 日期似乎等于

转载 作者:行者123 更新时间:2023-12-02 07:26:44 24 4
gpt4 key购买 nike

我的数据库中有一个表 INCASSO:

CREATE TABLE "GEC_AP"."INCASSO" 
("ID_INCASSO" VARCHAR2(50 BYTE) NOT NULL ENABLE,
"ID_FATTURA" VARCHAR2(50 BYTE) NOT NULL ENABLE,
"ID_PIANO_RATE" VARCHAR2(22 BYTE) DEFAULT -1 NOT NULL ENABLE,
"DATA_ESECUZIONE" DATE DEFAULT SYSDATE NOT NULL ENABLE,
...)

主键包含四个字段:

CONSTRAINT "PK_INCASSO" PRIMARY KEY ("ID_INCASSO", "ID_FATTURA", "ID_PIANO_RATE", "DATA_ESECUZIONE")

当我运行以下查询时,似乎有重复的记录:

select id_incasso, id_fattura, id_piano_rate, data_esecuzione
from incasso
where id_incasso = 'TO_20110521258225'

enter image description here

但是通过另一个查询,提取了 0 条记录:

select id_incasso, id_fattura, id_piano_rate, data_esecuzione, count(*)
from incasso where id_incasso = 'TO_20110521258225'
group by id_incasso, id_fattura, id_piano_rate, data_esecuzione
having count(*) > 1

数据库位于 Oracle 11.2.0.1.0 上,我使用的是 SQL Developer 4.1.1.19。

在 SQL Developer 中,日期格式为:

enter image description here

我想知道记录是否不同或者编辑器中存在格式日期问题。如果记录根据日期不同,那么它们在日期的哪一部分不同?如果是编辑器中的格式日期问题,我该如何修复它?

最佳答案

将日期格式更改为 DD-MON-YYYY HH24:MI:SS,您可能会发现日期具有不同世纪的差异。

使用RR格式化年份可以隐藏一个日期是1911,另一个日期是2011

尝试:

SELECT TO_CHAR( DATE '2011-01-01', 'RR-MM-DD' ),
TO_CHAR( DATE '1911-01-01', 'RR-MM-DD' )
FROM DUAL

尽管日期不同并且不会组合在一起,但两者都会输出相同的内容。

如果日期仍然相同,则在字符串中查找其他空格或其他隐藏字符;您可以使用 LENGTH() 检查字符串的大小,或使用 DUMP() 获取内容的字节值:

select id_incasso,
id_fattura,
LENGTH( id_fattura ) AS f_length,
id_piano_rate,
LENGTH( id_piano_rate ) AS pr_length,
TO_CHAR( data_esecuzione, 'YYYY-MM-DD HH24:MI:SS' ) AS data_esecuzione
from incasso
where id_incasso = 'TO_20110521258225'

关于Oracle 日期似乎等于,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41568532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com