当前位置:编程学习 > JAVA >>

为什么用 new Date()往数据库插时间 得不到 时分秒

            // 设置创建时间
            customerInfo.setCreatetime(new Date());
            // 设置最后更新时间
            customerInfo.setLastupdatetime(new Date());

数据库是 SQL 2005 插进去  只有年月日 时分秒 都显示成00:00:00

我想插入时分秒怎么解决 --------------------编程问答-------------------- 给他个 格式就好啦
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.format(new Data()); --------------------编程问答-------------------- 因为你数据库是DateTime类型的 --------------------编程问答-------------------- 楼上的错了吧 
data类型就值返回   yyyy-MM-dd
datatime 是返回  yyyy-MM-dd HH:mm:ss
如果用datatime就是对的
建议楼主可以  吧   数据库类型换成  varchar类型
然后使用1楼的办法存进去 
就绝对不会有错了 --------------------编程问答-------------------- new Timestamp --------------------编程问答-------------------- 1楼的可以可能是你默认的格是是YYYY-MM-DD  --------------------编程问答--------------------
引用 4 楼 soli11722984 的回复:
new Timestamp

数据库用Timestamp --------------------编程问答-------------------- 四楼一楼正解 --------------------编程问答-------------------- Time t=new Time();
t.setDtime(new Date());//util下的date
为什么我这样写有时分秒呢??
数据库sqlserver2005,字段类型datetime
--------------------编程问答-------------------- 1.检查列类型是date还是datetime;
2.检查下你的bean在执行insert或者update时候的值。举个例子,你在vo set了new Date();但是view层对其格式化成yyyy-MM-dd,再根据view对po赋值的话,很可能就变卦了。 --------------------编程问答-------------------- new Date()的格式是MT。。。。什么的,format一下吧! --------------------编程问答-------------------- 又来晚了给他个 格式就好啦
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.format(new Data()); 
 
--------------------编程问答--------------------
引用 6 楼 zn85600301 的回复:
引用 4 楼 soli11722984 的回复:

new Timestamp

数据库用Timestamp

正解 --------------------编程问答--------------------     public Timestamp getDatetime() {
     Timestamp now = new java.sql.Timestamp(new java.util.Date().getTime());
     return now;
    }

我是需要时调用这个插入mysql的。debug确定你插入的时间是否Date+Time。 --------------------编程问答-------------------- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.format(new Data()); --------------------编程问答--------------------
引用 4 楼 soli11722984 的回复:
new Timestamp

+1 --------------------编程问答-------------------- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.format(new Data());
这种的都是S B啊? 你不会看人家
customerInfo.setCreatetime(new Date());
SET的类型是Date啊,你sdf.format(new Data());的返回值是Date?
--------------------编程问答--------------------  用simpledateformat格式化一下,Date过时了啊!!! --------------------编程问答--------------------
引用 4 楼 soli11722984 的回复:
new Timestamp

+1 --------------------编程问答-------------------- 关键是通过jdbc设置值时,要用setTimestamp()不能用setDate() --------------------编程问答-------------------- 存时间的直接用个String类型的来存~~~
简单,直观~~ --------------------编程问答--------------------
引用 20 楼 okey_easy 的回复:
存时间的直接用个String类型的来存~~~
简单,直观~~


SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
String date = sdf.format(new Date())

然后插数据库吧
--------------------编程问答-------------------- 楼主的问题我也遇到了 --------------------编程问答-------------------- new Timestamp
正解 --------------------编程问答-------------------- 是的,楼上各位说到正点了。数据库中使用Timestamp格式,
然后将时间格式化一下就ok了。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
String date = sdf.format(new Date())
将date插入到数据库就没问题了! --------------------编程问答-------------------- 请shuyon --------------------编程问答-------------------- 请使用java.sql.Timestamp类型 --------------------编程问答-------------------- java的Date有两种:
java.lang.util.Date含时分秒
java.sql.Date不含时分秒 --------------------编程问答-------------------- --------------------编程问答-------------------- util的Date;
sql的Timestamp;

Date d = new Date();
long t = d.getTime();
Timestamp time = new Timestamp(t);


事务操作时候  插入数据使用
 setTimestamp(time);
会显示时分秒。
如果不想显示时分秒,就用sql的Date;
--------------------编程问答-------------------- 其实这个问题在网上找一下,很多的解决办法。 --------------------编程问答-------------------- 哥们,你们写东西能写的好一点吗?单词都是错的  date
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,