当前位置: 技术问答>java相关
关于在JBuilder7中向数据库中存如当前日期的问题,撒100分!!急!!
来源: 互联网 发布时间:2015-09-02
本文导语: 我在JAVA中向数据库存入当前日期时,为什么总是存入一个很怪的日期,比如我想存入2002-9-13 这个日期,当他写入数据库中时就变成了1905-6-5这样一个日期了,请哪位高手指点,100分相送。 | ...
我在JAVA中向数据库存入当前日期时,为什么总是存入一个很怪的日期,比如我想存入2002-9-13 这个日期,当他写入数据库中时就变成了1905-6-5这样一个日期了,请哪位高手指点,100分相送。
|
如果你的日期以字符串形式存储就不会有这样的问题,
Java 操作数据库是通过连接工厂实现,你提交的数据操作语句是一组字符串
而数据库又是日期类型。
若非要以日期类型存储,先观察取得的系统主机日期是否符合实际日期,
再将日期转换成数据库存储的字符串格式(例:2002-09-13或2002/09/13),
合成SQL提交语句的时候用单引号将其括起来(例:'2002-09-13'),然后提交,
再检查数据库中的日期是否正确,祝你成功
Java 操作数据库是通过连接工厂实现,你提交的数据操作语句是一组字符串
而数据库又是日期类型。
若非要以日期类型存储,先观察取得的系统主机日期是否符合实际日期,
再将日期转换成数据库存储的字符串格式(例:2002-09-13或2002/09/13),
合成SQL提交语句的时候用单引号将其括起来(例:'2002-09-13'),然后提交,
再检查数据库中的日期是否正确,祝你成功
|
public java.sql.Timestamp getCurrentTimestamp()
{
java.util.Date ud = new java.util.Date();
java.sql.Timestamp now = new java.sql.Timestamp(ud.getTime());
return now;
}
{
java.util.Date ud = new java.util.Date();
java.sql.Timestamp now = new java.sql.Timestamp(ud.getTime());
return now;
}
|
然后用
把这个日期插入就可以了
public static java.sql.Date getCurrentDate()
{
java.util.Date ud = new java.util.Date();
java.sql.Date now = new java.sql.Date(ud.getTime());
return now;
}
public static java.sql.Time getCurrentTime()
{
java.util.Date ud = new java.util.Date();
java.sql.Time now = new java.sql.Time(ud.getTime());
return now;
}
得到不同格式
对应prepareStatement的setTimestamp(),setDate(),setTime()方法
把这个日期插入就可以了
public static java.sql.Date getCurrentDate()
{
java.util.Date ud = new java.util.Date();
java.sql.Date now = new java.sql.Date(ud.getTime());
return now;
}
public static java.sql.Time getCurrentTime()
{
java.util.Date ud = new java.util.Date();
java.sql.Time now = new java.sql.Time(ud.getTime());
return now;
}
得到不同格式
对应prepareStatement的setTimestamp(),setDate(),setTime()方法
|
有你们说的烦吗?
如果是Oracle,合成的sql串为:insert into tablename(mydate) values (to_date('2002-9-13','yyyy-mm-dd')),如果是系统日期就用sysdate代替to_date('2002-9-13','yyyy-mm-dd')就可以。
如果是sqlserver、sybase和mysql:insert into tablename(mydate) values ('2002-9-13'),对于系统日期看各自数据,
那样做就万事大吉了,干吗要java去做。
如果是Oracle,合成的sql串为:insert into tablename(mydate) values (to_date('2002-9-13','yyyy-mm-dd')),如果是系统日期就用sysdate代替to_date('2002-9-13','yyyy-mm-dd')就可以。
如果是sqlserver、sybase和mysql:insert into tablename(mydate) values ('2002-9-13'),对于系统日期看各自数据,
那样做就万事大吉了,干吗要java去做。
|
我觉得最好是往数据库中插入8位的字符串。
|
向Date型的字段中插入字符串就行了:
String currentDate = new java.sql.Date().toLocaleString();//当前时间
Statement stmt=conn.createStatement() ;
stmt.executeUpdate("insert into table(date) values('" + currentDate + "')");
String currentDate = new java.sql.Date().toLocaleString();//当前时间
Statement stmt=conn.createStatement() ;
stmt.executeUpdate("insert into table(date) values('" + currentDate + "')");