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','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:年中的第几个星期

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PHP在线

mysql学习笔记

InnoDB引擎与MyISAM引擎 mysql是关系型数据库。其中的存储引擎可以show engines来查看。我的版本是5.6.26的,查看版本用selec...

2775
来自专栏Golang语言社区

go语言的sql包原理与用法分析

go的sql包是在pkg/database中,里面的两个包sql和sql/driver可以一起看。建议看这个两个包之前可以先看看sql文件夹下的doc.txt。...

2914
来自专栏Hongten

python开发_pickle

pickle模块使用的数据格式是python专用的,并且不同版本不向后兼容,同时也不能被其他语言说识别。要和其他语言交互,可以使用内置的json包使用pickl...

872
来自专栏Greenplum

Greenplum 对JSON的支持

源文章:http://www.postgresqltutorial.com/postgresql-json/

581
来自专栏python学习路

三、模型(一)

当我们的程序涉及到数据库相关操作时,我们一般都会这么做: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调...

3969
来自专栏Golang语言社区

go语言的sql包原理与用法分析

本文实例讲述了go语言的sql包原理与用法。分享给大家供大家参考,具体如下: go的sql包是在pkg/database中,里面的两个包sql和sql/driv...

4316
来自专栏用户2442861的专栏

[疯狂Java]JDBC:PreparedStatement预编译执行SQL语句

    1) SQL语句和编程语言一样,仅仅就会普通的文本字符串,首先数据库引擎无法识别这种文本字符串,而底层的CPU更不理解这些文本字符串(只懂二进制机器指...

1982
来自专栏机器学习从入门到成神

Java知识点总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

1111
来自专栏编程

Web工程下读取文件的几种方法

1、读取文件系统路径文件 * 一定要使用绝对路径 String fileName = getServletContext().getRealPath("/in...

2056
来自专栏跟着阿笨一起玩NET

EF Code First 学习笔记:关系

项目中最常用到的就是一对多关系了。Code First对一对多关系也有着很好的支持。很多情况下我们都不需要特意的去配置,Code First就能通过一些引用属性...

1191

扫码关注云+社区