zoukankan      html  css  js  c++  java
  • oracle数据库兼容mysql的差异写法

      1.sysdate改为sysdate(),或者now();

      2.nvl(expr1,expr2) 改为IFNULL(expr1,expr2) 

        nvl2(expr1,expr2,expr3)改为 IF(expr1,expr2,expr3);

      3.to_date('19000101000000','yyyymmddhh24miss')改为select str_to_date('1900-01-01 00:00:00','%Y-%m-%d %H:%i:%s'),写法略有差异:
        date_format(date,'%Y-%m-%d') -------------->oracle中的to_char();
        str_to_date(date,'%Y-%m-%d') -------------->oracle中的to_date();
        说明:
        %Y:代表4位的年份
        %y:代表2为的年份
        %m:代表月, 格式为(01……12)
        %c:代表月, 格式为(1……12)
        %d:代表月份中的天数,格式为(00……31)
        %e:代表月份中的天数, 格式为(0……31)
        %H:代表小时,格式为(00……23)
        %k:代表 小时,格式为(0……23)
        %h: 代表小时,格式为(01……12)
        %I: 代表小时,格式为(01……12)
        %l :代表小时,格式为(1……12)
        %i: 代表分钟, 格式为(00……59)

        %r:代表 时间,格式为12 小时(hh:mm:ss [AP]M)
        %T:代表 时间,格式为24 小时(hh:mm:ss)

        %S:代表 秒,格式为(00……59)
        %s:代表 秒,格式为(00……59)

      4.Oracle截取字符串的函数为:substr(字段名,起始位置,字符串长度) 起始位置可从0开始,截取结果和从1开始一样;

        MySql截取字符串的函数为:substring(字段名,起始位置,字符串长度) 起始位置必须从1开始,0开始不能获取到数据;

      5.MySql left join不能用+号代替;
      6.连接字符串在Oracle中用|| ,SqlServer中用+,MySQL中用concat('a','b','c');

      7.ORACLE: select INSTR('sdsq','s',2) value from dual(要求从位置2开始)
        MYSQL: select INSTR('sdsq','s') value(从默认的位置1开始);

      8.instr('abcdefg', 'ab')改为locate('ab', 'abcdefg'),名字改变,参数位置互换;

      9.length()改为char_length();

      10.TO_NUMBER('123')改为CAST("123" AS SIGNED INTEGER),带符号整型;

      11.ADD_MONTHS(sysdate, 2)改为DATE_ADD(sysdate(), interval 2 month);

      12.MySql函数:DATEDIFF(date1,date2)两个日期相减;

  • 相关阅读:
    ping和traceroute原理分析异同为什么不能ping通却能traceroute (转载) 规格严格
    JDBC hang on Statement 规格严格
    邮件服务返回代码含义 规格严格
    后台分析(转载) 规格严格
    Java Socket(转载) 规格严格
    编程好习惯 规格严格
    统计图表生成 规格严格
    几篇不错的博客 规格严格
    我见过的一个让我瞠目结舌的电脑高手!
    Ubuntu 下Ape转Mp3[88250原创]
  • 原文地址:https://www.cnblogs.com/garfieldcgf/p/5498235.html
Copyright © 2011-2022 走看看