oracle日期怎么相等,Oracle日期似乎相等

我的数据库中有一个表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'

hcD8C.png

但是使用另一个查询,提取了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中,日期格式为:

X2Gc2.png

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

最佳答案 将日期格式更改为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'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值