to_char或to_date函数替代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 dual"
convert函数使用规则
在MySQL中convert()函数中value在前,type在后,DM数据库中相反,若使用convert()函数,请修改参数顺序。例如:
- MySQL写法:CONVERT(CASE WHEN TEMP_STA.c_data_value THEN NULL ELSE TEMP_STA.c_data_value END, SIGNED) AS "ONLINEUSER"
- DM写法:CONVERT(INTEGER,CASE WHEN TEMP_STA.c_data_value THEN NULL ELSE TEMP_STA.c_data_value END) AS "ONLINEUSER"
cast函数使用规则
DM中cast()用法与MySQL一致,但使用效果不同,例MySQL中对于数值类型的value转char类型没有限制,DM中则存在限制。可将cast(数值类型的value as char)转换为cast(数值类型的value as varchar),对于unsigned类型可以根据实际情况做对应改变或确定是否有必要进行转换。
DM中使用TIMESTAMPADD替代date_add函数
在MySQL中若采用date_add函数对添加时间间隔的表达式进行求值,可在DM中使用TIMESTAMPADD函数进行替代。例如:
- MySQL写法:select DATE_ADD(sysdate(), INTERVAL 1 YEAR);
- DM写法:select TIMESTAMPADD(SQL_TSI_YEAR, 1,sysdate());
interval关键字的使用
在MySQL中若使用类似interval 1 year的时间间隔表达式,在达梦数据库中,interval关键词后的正数需添加单引号,如interval '1' year,对于负数需改写,如interval '-1' year。