• 记录垃圾MySQL的蛋疼失败(相对于mssqlserver)


    我疯了呀。。。

    1.解决方案:将convert 换成substring   

     mysql和mssqlserver差异(不要问我为什么骂的厉害,作为一个经常使用存储过程的我要去转换几个项目的存储过程,我感觉我要废了)

        mysql  mssqlserver  说明
    获取实时时间差异 now() getdate()  
    获取前几条数据差异 select * from 表明 limit 1;  // limit 1,1 select top 1 * from 表明  
    数据类型转换的差异 CONVERT(CS_PageIndex,signed) CONVERT(int,CS_PageIndex)  
    条件语句的差异 while do{}end while; while()begin{}end  
    if() then elseif() then{}else{} end if;  if() begin{}end else if() begin{}end else begin{}end  
    函数的差异  IFNULL(abc,0)  isnull(abc,0);  如果abc为空,赋值0
    检索位置  INSTR(Knowledge,',');  CHARINDEX(',',Knowledge)  
    获取长度  LENGTH('')  len('')  
    时间转换

    DATEDIFF(NOW(),'2021-8-10 23:59:59')

    TIMESTAMPDIFF(SECOND,now(),'2021-10-22 23:59:59')  -- 秒

    /*

    可查看:https://www.cnblogs.com/uiee/p/10671519.html

    SELECT 
    TIME_TO_SEC(TIMEDIFF('2018-09-30 19:38:45', '2018-08-23 10:13:01')) AS DIFF_SECOND1, -- 秒
    UNIX_TIMESTAMP('2018-09-30 19:38:45')-UNIX_TIMESTAMP('2018-08-23 10:13:01') AS DIFF_SECOND2, -- 秒
    TIMESTAMPDIFF(SECOND,'2018-08-23 10:13:01','2018-09-30 19:38:45') AS DIFF_SECOND3, -- 秒
    TIMESTAMPDIFF(MINUTE,'2018-08-23 10:13:01','2018-09-30 19:38:45') AS DIFF_MINUTE, -- 分
    TIMESTAMPDIFF(HOUR,'2018-08-23 10:13:01','2018-09-30 19:38:45') AS DIFF_HOUR, -- 小时
    TIMESTAMPDIFF(DAY ,'2018-08-23 10:13:01','2018-09-30 19:38:45') AS DIFF_DATE1, -- 天
    DATEDIFF('2018-09-30 19:38:45','2018-08-23 10:13:01') AS DIFF_DATE2, -- 天
    TIMESTAMPDIFF(MONTH,'2018-08-23 10:13:01','2018-09-25 19:38:45') AS DIFF_MONTH, -- 月
    TIMESTAMPDIFF(YEAR,'2018-08-23 10:13:01','2020-07-25 19:38:45') AS DIFF_YEAR -- 年
    FROM DUAL;

    */

    DATEDIFF(day,CONVERT(datetime,'2021-8-10 23:59:59'),GETDATE());  
    字符串拼接 CONCAT('%',UPPER(CS_SearchText),'%'); 直接使用+拼接  
     

    1.存储过程中无法使用'+'拼接字符串,只能通过CONCAT(string1,string2)

    2.叼毛存储过程中的临时表必须用完即删除,不然会影响下次查询

    3.mysql兼容性差的要死

    delete from ReTable where auto_id not in (select auto_id from ReTable order by auto_id asc LIMIT TCS_Top_Num);  -- 执行不了
    delete from ReTable where auto_id not in (select auto_id from (select auto_id from ReTable order by auto_id asc LIMIT TCS_Top_Num) as TempReTable);  -- 多加一层就可以

     

     

     

     

     




    mysql8.0与mysql5.6差异

    1.for update into

    2.CONVERT(SUBSTRING(CS_ReadScore,1,(TCS_TIndexVal-1)),float)      CONVERT(SUBSTRING(CS_ReadScore,1,(TCS_TIndexVal-1)),DECIMAL(5,2))

    mysql中一些优化操作(后续补充笔记)

    https://baijiahao.baidu.com/s?id=1644358136491778500&wfr=spider&for=pc

  • 相关阅读:
    text/css什麼意思
    w3cschool的在線編輯器的特點
    html
    notepad编写html
    html学习心得
    html 链接
    資料鏈接
    微信小程序的界面下拉刷新
    C# PictureBox控件畫圖
    CPK公式
  • 原文地址:https://www.cnblogs.com/namejr/p/15269339.html
Copyright © 2020-2023  润新知