针对于oracle里的to_char函数和to_number函数mysql不支持,在mysql‘里去自定义这两种函数,或者去做相应的函数转换

在创建过程中可能会遇见:

[HY000][1418] This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
 

这个时候执行:

set global log_bin_trust_function_creators=TRUE;

mysql自定义to_char:

 

CREATE FUNCTION `TO_CHAR`(`fdate` datetime,`format` varchar(255)) RETURNS varchar(255) CHARSET utf8mb3

BEGIN

DECLARE v_format VARCHAR(100);

    if fdate is null THEN

        RETURN '';

    end if;

    if format is null THEN

        RETURN '';

    end if;

SET v_format=format;

SET v_format = REPLACE(v_format,'hh24','%H');

SET v_format = REPLACE(v_format,'HH24','%H');

SET v_format = REPLACE(v_format,'hh','%H');

SET v_format = REPLACE(v_format,'HH','%H');

SET v_format = REPLACE(v_format,'mi','%i');

SET v_format = REPLACE(v_format,'MI','%i');

SET v_format = REPLACE(v_format,'mI','%i');

SET v_format = REPLACE(v_format,'Mi','%i');

SET v_format = REPLACE(v_format,'ss','%s');

SET v_format = REPLACE(v_format,'SS','%s');

SET v_format = REPLACE(v_format,'YYYY','%Y');

SET v_format = REPLACE(v_format,'yyyy','%Y');

SET v_format = REPLACE(v_format,'MM','%m');

SET v_format = REPLACE(v_format,'mm','%m');

SET v_format = REPLACE(v_format,'DD','%d');

SET v_format = REPLACE(v_format,'dd','%d');

    RETURN DATE_FORMAT(fdate, v_format);

END;

 mysql自定义to_number:

 

CREATE FUNCTION `to_number`(`st` varchar(20)) RETURNS int

BEGIN

RETURN cast( st   as   SIGNED   INTEGER) ;

END

 创建函数模板示例:

CREATE    [DEFINER = user]    FUNCTION sp_name ([func_parameter[,...]])    RETURNS type    [characteristic ...] routine_body   func_parameter:    param_name typetype:    Any valid MySQL data type  characteristic:    COMMENT 'string'  | LANGUAGE SQL  | [NOT] DETERMINISTIC  | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }  | SQL SECURITY { DEFINER | INVOKER } routine_body:    Valid SQL routine statement BEGIN  [statement_list]  ...    returnEND

查看函数定义: 

 show create function to_char

删除函数定义:

 DROP FUNCTION IF EXISTS sp_name

查看函数状态:

show function status

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

庞胖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值