注册

验证达梦(DM) 数据库中to_date和to_char比较时类型转换逻辑,为何二者会相等

001 2021/02/25 3153 1 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:
SQL验证语句如下:
SELECT CASE
WHEN to_char(TO_DATE(‘2020-01-01’, ‘yyyy-mm-dd’), ‘yyyy-mm-dd’) =
TO_DATE(‘2020-01-01’, ‘yyyy-mm-dd’) THEN
1
ELSE
2
END aa
FROM dual

该语句在Oracle库中执行会报"文字与格式字符串不匹配",因为sql里动用了一个to_char字符类型转换和to_date日期类型转换的比较.
而在达梦(DM)的库中执行是成功的,并且该语句返回结果为1,说明在达梦(DM)中是认同这个to_char和to_date之前的比较的,但是是如何实现的不清楚,需要提供下相关的转换逻辑.
如果达梦(DM)后面需要对to_char和to_date函数之间进行比较的逻辑进行修改的话,希望回复一下修改的方向(是否和Oracle一样改为不支持)
除此之外,还有另一个问题也需要达梦(DM)公司给予下解答
问题:
TO_DATE(‘2020-01-01 00:00:00’, ‘yyyy-mm-dd hh24:mi:ss’) 和 TO_DATE(‘2020-01-01’, ‘yyyy-mm-dd’)为什么是相等的
SQL验证语句:
SELECT CASE
WHEN TO_DATE(‘2020-01-01 00:00:00’, ‘yyyy-mm-dd hh24:mi:ss’) =
TO_DATE(‘2020-01-01’, ‘yyyy-mm-dd’) THEN
1
ELSE
2
END aa
FROM dual

回答 0
暂无回答
扫一扫
联系客服