DM8与mysql不兼容sql修改方案

1、不支持`符号

2、不支持find_in_set方法 需要自定义函数来解决(已解决)

3. 不支持 date_format 函数

4、日期加减需要使用 ADD_DAYS、ADD_MONTHS、ADD_WEEKS等方法

5、使用group by语法与oracle相同,需要查询字段与group by后面的一致(mysql 中的聚合可以采用 select * from 表 where 主键 in (select min(主键) from 表 group by mysql中的聚合字段)形式进行替换)

6、使用blob类型的,无法像MySQL进行强转为字符串,需要重写映射类(已解决)

7、使用CONVERT方法,mysql为CONVERT(value, type),达梦为CONVERT(type,value)

8、where条件中如果是筛选条件和列名相同则使用单引号

9、查询结果要重命名为关键字时,将关键字用双引号引起来,否则达梦会自动处理为大写

DATE_FORMAT()函数

以date_format函数为例,MySQL中的date_format函数可以在DM数据库中使用to_char或to_date函数改写,改写后在达梦中可以达到相同的效果,示例如下:

--MYSQL

select date_format(sysdate(), '%Y年%m月') from dual

--DM

select translate(to_char(sysdate, 'yyyy-mm#'),'-#','年月') from dua

--MYSQL

select DATE_FORMAT(C_FIRST_TIME,'%Y-%m-%d %H') FROM DUAL;

--DM

select TO_CHAR(C_FIRST_TIME, 'YYYY-MM-DD HH24') FROM DUAL;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值