为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM Database Server 64 V8
【操作系统】:centos7.6
【CPU】:x86
【问题描述】*:
1 执行 select date_format('2024-02-02','%c');此语句。
2 在下面这个V8的数据库,执行成功
3 在下面的生产环境中,却执行报错
请各位大神帮着看一下,谢谢。
找了个比您遇到报错版本更旧的版本测试了下没有异常,建议:一考虑使用to_char取代,二对比下2个库dm.ini日期相关的参数差异
SQL> select * from v$version;
行号 BANNER
---------- ---------------------------------
1 DM Database Server 64 V8
2 DB Version: 0x7000c
3 03134284044-20230417-187846-20040
SQL> select date_format('2024-02-02 00:00:00','%c');
行号 DATE_FORMAT('2024-02-0200:00:00','%c')
---------- --------------------------------------
1 02
SQL> select to_char('2024-02-02 00:00:00', 'mm');
行号 TO_CHAR('2024-02-0200:00:00','mm')
---------- ----------------------------------
1 02
SQL> select id_code;
行号 ID_CODE
---------- -----------------------------------
1 --03134284044-20230417-187846-20040
SELECT * FROM v$dm_ini WHERE para_name IN ('COMPATIBLE_MODE','DATETIME_FMT_MODE');
2.如果查询值和图中一致,可尝试修改DATETIME_FMT_MODE=0,此参数只涉及时间类型数据显示,不影响数据存储,修改后对新建连接生效,也可清理数据库执行计划缓存后生效
sp_set_para_value(1,'DATETIME_FMT_MODE',0);
--清理执行计划缓存
sp_clear_plan_cache();
你这两条SQL就不是完全一致的哈,下面时间的精度格式和上面不一样哈,下面不能用%c吧,%m试试呢