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

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

我在CSDN上查了些资料,有些说用setTimestamp()是可以的。但我想问下setDate行不行?
...全文
185 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
谢谢以上的所有各位的解惑!

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧