日期:2014-05-20  浏览次数:20629 次

实在觉得奇怪的问题,不知道什么原因了,急问啊
我用JAVA   在做一个日期区间查询时出现问题,说是转换为datetime   时出现问题,然后异常抛个不停
下面是语句:          
          String   d1=year1+ '- '+month1+ '- '+day1;//得到组合框的内容
          String   d2=year2+ '- '+month2+ '- '+day2;
          SimpleDateFormat   df   =   new   SimpleDateFormat( "yyyy-mm-dd ");
          java.util.Date   date1=df.parse(d1);
          java.util.Date   date2=df.parse(d2);
    查询语句如下:
          select   *   from   P   where   DATE   between   'date1 '   and   'date2 '

------解决方案--------------------
把d1和d2打印出来看看,可能是java.sql.date和java.util.date不同的问题
------解决方案--------------------
一直没用过java.sql.Date
------解决方案--------------------
用这个吧
DateFormat df = DateFormat.getDateInstance();
java.util.Date date1=new Date();
try
{
date1=df.parse( "2007-08-22 13:20:50 ");
}catch(Exception e)
{
System.out.println(e);
}
System.out.println(date1.toLocaleString());
------解决方案--------------------
用java.sql.Date
------解决方案--------------------
public static Date getDate(String str) {
Date date = null;
// 2006-12-19 09:00:28
final SimpleDateFormat df2 = new SimpleDateFormat(
"yyyy-MM-dd ' 'HH:mm:ss ");
// Fri,05 Jan 2007 06:00:34 GMT
final SimpleDateFormat df1 = new SimpleDateFormat(
"EEE,dd MMM yyyy HH:mm:ss z ", Locale.US);
// 2006-12-27
final SimpleDateFormat df3 = new SimpleDateFormat( "yyyy-MM-dd ");
if (date == null) {
try {
date = new Date(str);
} catch (Exception e) {
}
}
if (date == null) {
try {
date = df1.parse(str);
} catch (Exception e) {
}
}
if (date == null) {
try {
date = df2.parse(str);
} catch (Exception e) {
}
}
if (date == null) {
try {
date = df3.parse(str);
} catch (Exception e) {
}
}
if (date == null) {
// System.err.println( "bad date: " + str);
date = new Date();
date.setHours(0);
}
return date;
}