mysql数据库迁移到达梦数据库后常见函数处理

1 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 IF()函数

MySQL中的if()函数在当前测试版本DM中不支持,需采用case when进行替代,后续新版本可能会支持。

3 CONVERT()函数

DM的convert()函数中的type在前, value在后,而MySQL数据库中convert()函数则恰恰相反,对于cast()函数的用法则一致,测试示例如下:

--MYSQL
CONVERT(CASE WHEN TEMP_STA.c_data_value < 0 THEN NULL ELSE TEMP_STA.c_data_value END, SIGNED)  AS "ONLINEUSER",
 
--DM
CONVERT(INTEGER,CASE WHEN TEMP_STA.c_data_value < 0 THEN NULL ELSE TEMP_STA.c_data_value END)  AS "ONLINEUSER"

4 CAST()函数

DM中的cast()函数的用法虽然和MySQL一致,但使用效果存在不同,MySQL中对于数值类型的value转char类型没有限制,DM中则存在限制,会报“数据转换失败”等报错,可将cast(数值类型的value as char)转换为cast(数值类型的value as varchar),对于unsigned类型可以根据实际情况做对应改变或确定是否有必要进行转换。

5 DATE_ADD函数

date_add函数若对添加时间间隔的表达式进行求值,可采用DM的TIMESTAMPADD函数进行替代,例子如下:

--MYSQL
select DATE_ADD(sysdate(), INTERVAL 1 YEAR);
--2020-07-02 11:24:18
--DM
select TIMESTAMPADD(SQL_TSI_YEAR,1,sysdate());
    --2020-07-02 11:27:56.000000   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值