zoukankan      html  css  js  c++  java
  • 报错:对象必须实现 IConvertible;以分隔符进行分割链接concat_ws的使用方法;mysql数据类型转换cast,convert

    错误故障,mysql  服务器上用 concat_ws 函数,连接了一串数字,最后 服务器返回的字段就变成了一个 byte ,而我们想要的类型是  string 类型,那么转换的时候,就报错了.

    image

    正确的修改方法是在 concat_ws 进行连接后,用 convert 进行转换一下数据类型

    DELIMITER $$
    
    USE `sms`$$
    
    DROP PROCEDURE IF EXISTS `J_Mng_Getsmslogs`$$
    
    CREATE DEFINER=`root`@`%` PROCEDURE `J_Mng_Getsmslogs`(p_uid BIGINT,p_schoolid BIGINT,p_yaer INT,p_month INT)
    BEGIN
    1.5【用户】读取指定月份的短信记录 
     
     SELECT `SendUid` AS Uid,`SendName` AS `Name`,CONVERT(CONCAT_WS(',',`Day1`,`Day2`,`Day3`,`Day4`,`Day5`,`Day6`,`Day7`,`Day8`,`Day9`,`Day10`,`Day11`,`Day12`,`Day13`,`Day14`,`Day15`,`Day16`,`Day17`,`Day18`,`Day19`,`Day20`,`Day21`,`Day22`,`Day23`,`Day24`,`Day25`,`Day26`,`Day27`,`Day28`,`Day29`,`Day30`,`Day31`),CHAR(6000)) AS Sms
    FROM `tb_smscount` 
     WHERE `SchoolId`=p_schoolid AND `Month`=p_month AND `Year`=p_yaer;
    END$$
    
    DELIMITER ;

     

    下面说说 concat_ws的 使用方法

    当使用 concat_ws 的时候,如果后面连接的每个  都是 字符串,那么 连接后的 也是字符串  ,例如 


    mysql> select concat_ws(',','11','22','33');
    +-------------------------------+
    | concat_ws(',','11','22','33') |
    +-------------------------------+
    | 11,22,33  |
    +-------------------------------+
    1 row in set (0.00 sec)

    如果连接的字符中,有一个是null,则不连接进去

    和MySQL中CONCAT函数不同的是, CONCAT_WS函数在执行的时候,不会因为NULL值而返回NULL


    mysql> SELECT CONCAT_WS(',','11','22',NULL,'33');
    +-------------------------------+
    | CONCAT_WS(',','11','22',NULL,'33') |
    +-------------------------------+
    | 11,22,33 |
    +-------------------------------+
    1 ROW IN SET (0.00 sec)

    重点来了,如果连接的是数字,返回的一串 是个啥类型??? 请看最上面的截图  ,返回的是 byte 类型.  所以如果需要返回值是 字符,那么就必须要用 cast或者是 convert进行数据的转换

    附Cast,convert的用法:
    CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name)
    CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。
    这个类型 可以是以下值其中的 一个:
    BINARY[(N)]
    CHAR[(N)]
    DATE
    DATETIME
    DECIMAL
    SIGNED [INTEGER]
    TIME
    UNSIGNED [INTEGER]

  • 相关阅读:
    【APUE】Chapter15 Interprocess Communication
    【APUE】Chapter14 Advanced I/O
    【APUE】Chapter5 Standard I/O Library
    【APUE】Chapter4 File and Directories
    【APUE】Chapter3 File I/O
    【APUE】Chapter1 UNIX System Overview
    【APUE】Chapter13 Daemon Processes
    【APUE】Chapter10 Signals
    Hive之数据类型
    Hive之内置函数
  • 原文地址:https://www.cnblogs.com/joeylee/p/3553839.html
Copyright © 2011-2022 走看看