zoukankan      html  css  js  c++  java
  • mysql插入日期 vs oracle插入日期

    今天做oracle日期插入的时候突然开始疑惑日期是如何插入的。

    用框架久了,反而不自己做简单的工作了。比如插入。

    通常,新建一个表对象,然后绑定数据,前端form提交,后端getModel后直接model.save()就完事了。

    像insert这样的语句很少写了,除了备份sql的时候。

    言归正传,

    mysql插入日期不限制分隔符,不必明确格式

    至少测试了n次都成功了。

    1 INSERT INTO person(name,birth) values('dd','2015-02-02');
    2 INSERT INTO person(name,birth) values('dd','2015.02.02');
    3 INSERT INTO person(name,birth) values('dd','2015/02/02');
    4 INSERT INTO person(name,birth) values('dd','2015*02*02');
    5 INSERT INTO person(name,birth) values('dd','2015^02^02');
      INSERT INTO person(name,birth) values('dd','20150202');

    也遇到奇葩的:

    INSERT INTO person(name,birth) values('dd','2015-02-00');

    居然成功了。

    oracle插入日期

    1.直接插入日期格式错误,todate函数可以:

    1 --插入实例
    2 insert into person(name, birth) values('ceshi',sysdate);
    3 --错误的时间格式
    4 insert into person(name,birth) values('hehe','2015-06-02 00:00:00');
    5 --正确的插入日期
    6 insert into person(name,birth) values('hehe',to_date('2015-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss'));
    7 insert into person(name,birth) values('hehe',to_date('2015-01-01','yyyy-MM-dd'));

    2.使用jdbc连接oracle时,java需使用java.sql类的时间类:

    1 Person person = getModel(Person.class);
    2 //        person.set("birth", java.sql.Date.valueOf("2015-06-08"));
    3         person.set("birth", java.sql.Timestamp.valueOf("2014-06-08 05:33:99"));
    4         System.out.println(person);
    5         person.save();

    一点是只有日期格式的,使用java.sql.Date类;一个是带时间的,则使用java.sqlTimestamp类。

    当然,也可以使用to_date():

     可惜jfinal封装的model不可以使用,但是只要格式匹配,发现jfinal是可以直接存储,只要字段格式为:yyyy-MM-dd hh:mm:ss,例如2015-02-23 10:23:23 ,getmodel即可保存。

    1 PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,to_date(?, 'yyyy-mm-dd hh24:mi:ss')");
    2 String buydate="2004-06-08 05:33:99";
    3 pstmt.setString(1, "Java编程思想");
    4 pstmt.setString(2,buydate );
    5 pstmt.execute();

    附录oracle时间格式:

     1 附:oracle日期格式参数含义说明
     2 d:一周中的星期几
     3 day:天的名字,使用空格填充到9个字符
     4 dd:月中的第几天
     5 ddd:年中的第几天
     6 dy:天的简写名
     7 iw: ISO标准的年中的第几周
     8 iyyy:ISO标准的四位年份
     9 yyyy:四位年份
    10 yyy,yy,y:年份的最后三位,两位,一位
    11 hh: 小时,按12小时计
    12 hh24:小时,按24小时计
    13 mi:分
    14 ss:秒
    15 mm:月
    16 mon:月份的简写
    17 month:月份的全名
    18 w:该月的第几个星期
    19 ww:年中的第几个星期
  • 相关阅读:
    【Android 开源项目】下拉刷新Android-PullToRefresh介绍
    【Android 分享】ShareSDK微信分享详解
    android面试经验谈
    Android面试过程描述
    浅谈Android客户端项目框架
    面试时如何谈自己做过的项目
    直接拿来用!最火的Android开源项目(一)
    Android开发项目经验
    dom解析xml
    Android学习之简单的拍照功能
  • 原文地址:https://www.cnblogs.com/woshimrf/p/4778403.html
Copyright © 2011-2022 走看看