如何解决这个错误:日期格式图片在转换整个输入字符串之前结束

pepwfjgg  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(268)

我用oracle写了下面的代码error:date format 图片在转换整个输入字符串之前结束

to_date(substr(AE1.aestdtc_001_dts, 1, 10),'YYYY/MM/DD') <to_date(substr(AE2.AEENDTC_001_DTS,1, 10),'YYYY/MM/DD')

aeendtc_001_dts类似于2020-05-13t10:14

ljsrvy3e

ljsrvy3e1#

您的格式掩码已关闭。考虑这个版本:

TO_DATE(SUBSTR(AE1.aestdtc_001_dts, 1, 10), 'YYYY-MM-DD') < 
    TO_DATE(SUBSTR(AE2.AEENDTC_001_DTS, 1, 10), 'YYYY-MM-DD')

请注意,您还可以使用 TO_TIMESTAMP ,并包括时间部分:

TO_TIMESTAMP(AE1.aestdtc_001_dts, 'YYYY-MM-DD"T"HH:MI') < 
    TO_TIMESTAMP(AE2.AEENDTC_001_DTS, 'YYYY-MM-DD"T"HH:MI')

在这种情况下,假设您的文本时间戳是固定宽度的,实际上可以直接比较文本:

AE1.aestdtc_001_dts < AE2.AEENDTC_001_DTS

但请注意,在oracle数据库中以文本形式存储时间戳/日期并不理想,请改用适当的日期/时间戳列。

6rqinv9w

6rqinv9w2#

如果将值存储为字符串,则可以使用字符串进行比较:

substr(AE1.aestdtc_001_dts, 1, 10) < substr(AE2.AEENDTC_001_DTS, 1, 10)

你应该使用 date / timestamp 存储这些值。但是,您选择了一个好的字符串格式进行比较。因此,没有理由转换为 date 或者 timestamp .

相关问题