java date类型 怎么 插入 时间 到 数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java date类型 怎么 插入 时间 到 数据库相关的知识,希望对你有一定的参考价值。
JDBC环境下
如果使用的是PreparedStatement接口:
1.String sql = "insert into 表名(date类型的列) values(?)";
2.PreparedStatement stmt = con.prepareStatement(sql);
3.stmt.setDate(1, date对象);
4.stmt.executeUpdate();
如果使用的是Statement接口:
1.java.text.SimpleDateFormat fmt1 = new java.text.SimpleDateFormat("yyyy-MM-dd"); // mssql、mysql格式
2.java.text.SimpleDateFormat fmt2 = new java.text.SimpleDateFormat("dd-MM月-yyyy"); // oracle格式
3.String sql = String.format("insert into 表名(date类型的列) values('%s')", fmt1.format(date对象));
4.Statement stmt = con.createStatement();
5.stmt.executeUpdate(sql);
1:System.currentTimeMillis() 返回long类型 可以强制转换成Date格式 .
2:SimpleDateFormat.format()返回的是 String类型,可以得到我上述的时间格式,但是是String类型。
3:SimpleDateFormat.parse()返回的是Date类型,该方法试图按照给定的SimpleDateFormat 对象的格式化存储来解析字符串,试过后发现,解析后的值是“格林威治时间格式“,即我当初设想的思路应该不能实现,转而改变策略,以任意格式把时间变成Date格式插入数据库中,提取的时候再做变换即可。
4:查询中发现java.util.Date 和 java.sql.Date存在一些区别,util.date用Date date = new Date(),util可以活动值,sql包必须给参数。
参考技术A JDBC环境下如果使用的是PreparedStatement接口:
String sql = "insert into 表名(date类型的列) values(?)";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setDate(1, date对象);
stmt.executeUpdate();
如果使用的是Statement接口:
java.text.SimpleDateFormat fmt1 = new java.text.SimpleDateFormat("yyyy-MM-dd"); // mssql、mysql格式
java.text.SimpleDateFormat fmt2 = new java.text.SimpleDateFormat("dd-MM月-yyyy"); // oracle格式
String sql = String.format("insert into 表名(date类型的列) values('%s')", fmt1.format(date对象));
Statement stmt = con.createStatement();
stmt.executeUpdate(sql);
使用Hibernate和mybaits的确就不用关心类型转换问题了~本回答被提问者采纳
java 中怎么把字符串转为oracle date类型
把程序的数据存到数据库中:当程序中是String 类型时,SQL文应该用上
to_date(hiredate,'yyyy-mm-dd hh24:mi:ss')这样放到数据库中就是date类型
当程序中是Date类型时,必须先转为String类型,利用
new SimpleDateFormate("yyyy-MM-dd hh:mm:ss").format(new Date())转化
把数据库中数据取出时
要使用to_char(hiredate,'YYYY-MM-DD HH24:MI:SS')变为String类型,
还可以继续利用java.sql.Date.valueOf(String s)
将 JDBC 日期转义形式的字符串转换成 Date 值。 参考技术A 一DATE对象与字符串之间进行转换
TO_DATE()和TO_CHAR():这两个函数都有三个参数,一个是要转化的值,一个是可选的格式掩码和一个用于指定语言的可选字符串
to
select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') from dual;
select to_date('20100323','YYYYMMDD') from dual;
select ename,
to_char(hiredate,'ddthMon,YYYY') from emp
where hiredate between
to_date('1980-01-01','YYYY-MM-DD')
and
to_date('1985-01-01','YYYY-MM-DD')
二 取得Oracle数据库时间并存到Java中
从数据库date取得并转为java.util.Date类型
方法一: select
to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') as current_time from dual 取得字符串
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String
dateString = format.parse(map.get("CURRENT_TIME"));解析后取得Date的类型: Sat Jul 03
13:32:46 CST 2010
format.format(dateString);然后再格式化成想要的格式字符串
format.format(dateString);将Date类型转为想要的格式。但是类型为String。在想变回来时在用parse()方法.
方法一: select (sysdate - 8 / 24 - to_date('1970-01-01', 'yyyy-mm-dd')) * 86400000
current_milli from dual 取得java.math.BigDecimal类型
BigDecimal b =
(BigDecimal)dateMap.get("CURRENT_MILLI");
Long dateLong =
b.longValue();
new Date(dateLong);取得Date对象,可以处理
三 把程序的数据存到数据库中:
当程序中是String 类型时,SQL文应该用上
to_date(hiredate,'yyyy-mm-dd hh24:mi:ss')这样放到数据库中就是date类型
当程序中是Date类型时,必须先转为String类型,利用
new SimpleDateFormate("yyyy-MM-dd
hh:mm:ss").format(new Date())转化
把数据库中数据取出时
要使用to_char(hiredate,'YYYY-MM-DD HH24:MI:SS')变为String类型,
还可以继续利用java.sql.Date.valueOf(String s)
将 JDBC 日期转义形式的字符串转换成 Date 值。
以上是关于java date类型 怎么 插入 时间 到 数据库的主要内容,如果未能解决你的问题,请参考以下文章
怎么样将java中的date类型插入到mysql的datetime
Java代码中Date类型插入到mysql数据库中数值不一致