为何 preparedStatement类中的setDate(index,Date)方法中 date 值不能传入java.util.date类型呢 而是java.sql.date 类型 关键是java.sql.date 不是extends java.util.date的吗?
解决方案 »
- freemarker html界面判断疑问
- 美国人用F22换J10,真是看不懂 <运行的结果搞不清,请帮分析>
- javascript验证年、月(如:200909),用正则表达式,或其它都可以?
- 网页抓取消重算法
- 我快疯了,快救救我啊
- Tomcat的MSSQL2000的数据库连接池配置和使用,毕业设计急用,在线等……
- 請幫忙看一下:用java發郵件時,我想把收件者的郵箱地址隐藏起來(當有多個收件者時,收到郵件的人不知道這封mail還發給誰了)
- 关于网页里的javascript:open(....)打不开的问题~
- Tomcat5.0.14问题
- JDBC如何返回SQL执行时间
- 怎么用程序获取google地图数据
- ireport打印的问题
虽然java.sql.Datejava.util.Date的子类
但是sql.Date主要是为了配合数据库sql而设置的数据类型。
规范的sql.Date只包含年月日信息,而时分秒毫秒都会清零。
比如常见的格式为:YYYY-MM-DD。
当从数据库中查找通过getDate()方法来获得值的时候,java程序会参照sql.Date来格式化数据库中的数据。
如果我们想得到精确的数据,我们通常就用Timestamp来做了!
前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用他
后者之后在读写数据库的时候用他,因为PreparedStament的setDate()的第2参数和ResultSet的
getDate()方法的第2个参数都是java.sql.Date 转换是
java.sql.Date date=new Java.sql.Date();
java.util.Date d=new java.util.Date (date.getTime());
反过来是一样的。
java.sql.Date也是一个时间戳,但它把当前的时间剪掉了,保证它一定是那个日期的0点0分0秒的时间戳所以如果你用new java.util.Date()会得到当前时间
但如果用new java.sql.Date(new java.util.Date().getTime()),得到的时间会是那一天的0点0分0秒