美文网首页
oracle 对比mysql

oracle 对比mysql

作者: wsj1211 | 来源:发表于2020-10-28 14:06 被阅读0次

    1 . to_char() to_date()

    oracle中的转字符:to_char()
    oracle中的转日期:to_date()

    mysql中的转字符:date_format(date,'%Y-%m-%d') 相当于oracle中的to_char()

    mysql中的转日期:str_to_date(date,'%Y-%m-%d') 相当于oracle中的to_date()

    %Y:代表四位年 (相当于oracle中的yyyy)注意这里严格大写。

    %m:代表两位月份(01,02……10,12)

    %d:代表月份中两位天数(01,02……30,31)

    %e:代表月份中的天数(1,2,3,4……30,31)
    %e:代表月份中的天数(1,2,3,4……30,31)

    ===================================================

    %H:代表24小时的小时格式(00,01,02……12,13,14……20,21,22,24)

    %k:代表24小时的小时格式(0,1,2……12,13,14……20,21,22,24)

    %h:代表12小时的小时格式(01,02,03……11,12)

    %l:代表12小时的小时格式(1,2,3……11,12)

    %i:代表分钟(格式为00,01,02……58,59)

    %r:表示12小时的时间格式(hh:mm:ss)

    %T:表示24小时的时间格式(hh:mm:ss)

    行转列 in 逗号分隔的值

    oracle :
    j.BUSINESS_ID in ( SELECT REGEXP_SUBSTR (s.JUROR_APPLY_ID , '[^,]+', 1,rownum) from dual connect by rownum <![CDATA[ <= ]]> LENGTH (s.JUROR_APPLY_ID ) - LENGTH (regexp_replace(s.JUROR_APPLY_ID , ',', ''))+1 )

    mysql:
    find_in_set(j.BUSINESS_ID, s.JUROR_APPLY_ID)

    列转行 LISTAGG WITHIN GROUP / GROUP_CONCAT

    ORCLE
    LISTAGG(H.HOLIDAY_DATE',') WITHIN GROUP( ORDER BY H.HOLIDAY_DATE ) as dayOff,

    MYSQL
    GROUP_CONCAT(H.HOLIDAY_DATE, ',') as dayOff,

    add_month() / ADDDATE()

    ORACLE
    add_months(sysdate,-6)
    MYSQL
    ADDDATE(sysdate(),-6)
    获取当前时间 oracle: sysdate mysql sysdate()

    列出一个月的日期

    ORACLE

     SELECT
           concat(to_char(sysdate,'yyyy-MM'),'-') || lpad( LEVEL, 2, 0 ) datevalue,
           lpad( LEVEL, 2, 0 ) dd
          FROM
           dual CONNECT BY LEVEL <=   ( SELECT to_number( substr( last_day( sysdate), 0, 2 )) FROM dual )
    

    MYSQL

     SELECT
            date_add(
                CONCAT(YEAR(Date(curdate())),'-0',MONTH(Date(curdate())),'-','01'),
                INTERVAL ( cast( help_topic_id AS signed INTEGER ) ) DAY 
                ) DAY ,
            lpad( cast( help_topic_id AS signed INTEGER )+1 ,2,0)  as dd
        FROM
            mysql.help_topic 
        WHERE
            help_topic_id < DAY ( last_day( curdate( ) ) ) 
        ORDER BY
            help_topic_id
    
    

    mysql 函数 :
    1.CAST( value AS type )
    type的类型有

    value   描述
    DATE    日期,格式为 'YYYY-MM-DD'.
    DATETIME    日期加具体的时间,格式为 'YYYY-MM-DD HH:MM:SS'.
    TIME    时间,格式为 'HH:MM:SS'.
    CHAR    字符型
    SIGNED  int
    UNSIGNED    无符号int
    BINARY  二进制型
    DECIMAL float型
    

    mysql.help_topic表的自增id是从0开始所以在进行截取

    查询重复数据 获取重复数据的第一条数据

    ORACLE

     select t.* from
           (select
            *,
           row_number() OVER(PARTITION BY INSTANCE_ID ORDER BY CREATE_DATE desc) as row_flg
           from IN_OVERTIME_WORK_EXECUTE 
           )t
           where t.row_flg  = 1
    

    MYSQL

     select t.* from
           (select *  from IN_OVERTIME_WORK_EXECUTE  ORDER BY CREATE_DATE DESC )t
            group by t.INSTANCE_ID
        </select>
    

    相关文章

      网友评论

          本文标题:oracle 对比mysql

          本文链接:https://www.haomeiwen.com/subject/yjitvktx.html