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类型 怎么 插入 时间 到 数据库的主要内容,如果未能解决你的问题,请参考以下文章

要插入timestamp类型的数据sql语句要怎么写呢?

java如何获取当前时间插入数据库?

怎么样将java中的date类型插入到mysql的datetime

Java代码中Date类型插入到mysql数据库中数值不一致

java怎么使用日期格式化将时间插入mysql datetime数据类型中?

如何向mysql数据库中插入日期