zoukankan      html  css  js  c++  java
  • 2015-05-27 用正则把oracle时间转化到mysql时间

    history:
    修改时间:2015年5月28日15:05:39
    /**********************************************************/
    啊!好久没写博客了。今天要把一些数据从oracle迁移到mysql,对于时间的转化做了个正则替换,希望能帮到有需要的朋友。
     
    0.用正则把id去掉:
    insert into IM_SM_EVALUATION ( NAME, CODE, VAL, HOST_TEL, DESCRIPTIOIN, CREATE_MAN, CREATE_TIME)
    values ( '未评价', 0, null, 13601, null, null, STR_TO_DATE('15-04-2015 15:54:55', '%d-%m-%Y %k:%i:%s'));
     
    /* ***************     未改的      **************/
    insert into IM_SM_EVALUATION (id, NAME, CODE, VAL, HOST_TEL, DESCRIPTIOIN, CREATE_MAN, CREATE_TIME)
    values (410, '非常满意', 1, null, 13201, null, null, STR_TO_DATE('28-01-2015 16:42:12', '%d-%m-%Y %k:%i:%s'));
    /* 正则后*/
    insert into IM_SM_EVALUATION ( NAME, CODE, VAL, HOST_TEL, DESCRIPTIOIN, CREATE_MAN, CREATE_TIME)
     values ( '非常满意', 1, null, 13201, null, null, STR_TO_DATE('28-01-2015 16:42:12', '%d-%m-%Y %k:%i:%s'));
     
    正则:
    ^insert(.*)(ID,(.*))s*valuess*(d+,(.*));$
    insert$1($2) values ($3);
     
    /* **************** 最好先处理掉id,再执行 下面的操作,让mysql数据表主键自增 *********************/
     
     
    1.mysql中插入时间
     
    mysql在插入时间的时候 要进行格式转换 例如 insert into users(birth) values(STR_TO_DATE('" + alarmDefi.getEndTime()+ "','%Y-%m-%d %k:%i:%s')) ;
    这样就可以插入 年-月-日 时:分:秒 
    例:
    insert into IM_SM_EVALUATION ( NAME, CODE, VAL, HOST_TEL, DESCRIPTIOIN, CREATE_MAN, CREATE_TIME)
    values ( '非常满意', 1, null, 13452, null, null, STR_TO_DATE('2014-12-30 19:29:20', '%Y-%m-%d %k:%i:%s'));
     
    2.从oracle的插入时间的脚本 转化为 mysql插入时间的脚本:
    oracle脚本,利用PLSQL的 Export data 功能导出的脚本:
    insert into IM_SM_EVALUATION ( NAME, CODE, VAL, HOST_TEL, DESCRIPTIOIN, CREATE_MAN, CREATE_TIME)
    values ( '满意', 2, null, 13601, null, null, to_date('15-04-2015 15:54:55', 'dd-mm-yyyy hh24:mi:ss'));
    insert into IM_SM_EVALUATION ( NAME, CODE, VAL, HOST_TEL, DESCRIPTIOIN, CREATE_MAN, CREATE_TIME)
    values ('不满意', 3, null, 13601, null, null, to_date('15-04-2015 15:54:55', 'dd-mm-yyyy hh24:mi:ss'));
     
    利用正则来替换:
    to_date('31-12-2014 19:29:20', 'dd-mm-yyyy hh24:mi:ss')
    STR_TO_DATE('31-12-2014 19:29:20', '%d-%m-%Y %k:%i:%s')  /* 注意 %d 和%Y换下位置,不会影响最后插入效果 */
     
    正则:
    //不用贪婪用懒惰,并且为防出错最好匹配大小写(即大小写敏感)
    to_date((.*?), 'dd-mm-yyyy hh24:mi:ss')
    STR_TO_DATE($1, '%d-%m-%Y %k:%i:%s')
     
    对于大数量带入迁移有大用!我是使用notePad++的正则功能实现的。
     
  • 相关阅读:
    算法训练 表达式计算
    基础练习 十六进制转十进制
    基础练习 十六进制转十进制
    基础练习 十六进制转十进制
    New ways to verify that Multipath TCP works through your network
    TCP的拥塞控制 (Tahoe Reno NewReno SACK)
    Multipath TCP Port for Android 4.1.2
    How to enable ping response in windows 7?
    NS3
    Multipath TCP Port for Android
  • 原文地址:https://www.cnblogs.com/xxchao/p/4534000.html
Copyright © 2011-2022 走看看