setDate()是否可以将年、月、日及时、分、秒都保存进数据库?

NoReady 2005-04-06 09:22:35
用PreparedStatement的方法setDate()是否可以将年、月、日及时、分、秒都保存进数据库?我用的是Oracle数据库,数据库中的日期是Date类型。

我在CSDN上查了些资料,有些说用setTimestamp()是可以的。但我想问下setDate行不行?
...全文
103 点赞 收藏 14
写回复
14 条回复
shan1119 2005年04月06日
learn from ChDw(米)
回复 点赞
ChDw 2005年04月06日
怎么越说越复杂

PreparedStatement prep =...;
prep.setTimestamp(1, new Timestamp(System.currentTimeMillis()));
or
prep.setTimestamp(1, new Timestamp(utilDate.getTime()));


在Java里面,可以说Date是没有格式和时区之分的,都是以格林威治时间为准,
它会自动在setTimestamp的时候转换好,你无需理会这些东西!
回复 点赞
NoReady 2005年04月06日
to drugon(更高,更远,更强) :
你的意思是:只要外面传给setDate()的日期是GTM格式的,那么就行了,是吗?
回复 点赞
NoReady 2005年04月06日
可是Timestamp和java.util.Date间如何转化?
回复 点赞
drugon 2005年04月06日
setDate()本身不行,不能保存时、分、秒,但你先用java.sql.Date对象的setTime()方法将这个时间设置成有年、月、日、时、分、秒和时间,然后再用setDate()来加到PreparedStatement的参数中去。要注意的是java.sql.Date对象的setTime()方法中的时间格式是GTM格式的。
回复 点赞
craigavon 2005年04月06日
只能设置年月日吧
别的没试过
回复 点赞
NoReady 2005年04月06日
再向各位确认一下:
setTimestamp()也同时包含日期的吗?
回复 点赞
topil 2005年04月06日
oracle 中有自带的函数 sysdate可以直接使用啊,不过用的是DB的时间
回复 点赞
晨星 2005年04月06日
楼主编个程序试试不就知道了,setDate和SetTimeStamp都试试。
回复 点赞
NoReady 2005年04月06日
好,谢谢 ChDw(米) !
回复 点赞
ChDw 2005年04月06日
Oracle中的Date类型就是对于Java中的Timestamp,所以你根本无需怀疑。

应该使用setTimestamp!
回复 点赞
晨星 2005年04月06日
我觉得可以。
回复 点赞
ChDw 2005年04月06日
当然是不可以,因为SQL中的setDate的意思就是只有日期,不含时间的意思!
所以你必须使用setTimestamp
回复 点赞
NoReady 2005年04月06日
谢谢以上的所有各位的解惑!
回复 点赞
发动态
发帖子
Java SE
创建于2007-09-28

3.4w+

社区成员

30.7w+

社区内容

Java 2 Standard Edition
社区公告
暂无公告