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   

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐