如果只是插入到数据库的花,可以不用这么麻烦。还要做select的条件吗?
解决方案 »
- 一个简单的关于int 和short ,byte 的问题,高手请进
- 关于JAVA后台大批量数据检核效率问题
- 关于匿名内部类的问题
- 几道小小的题目一起和大家更进一步地了解 Java (Ⅳ)
- js和yui高手进
- 请前辈说一下你是怎样成为JAVA程序员的
- java简单问题求解
- 关于QQ的贴字实在是多,95%是废话,是猜测,是臆断,
- 我试了一下,main()可以不要public,正常执行.但是Sun的教程上说main()必须是public+static+void的,请各位高手讨论一下!
- 为什么说SwingPropertyChangeSupport这个类不是线程安全的呢?
- 怎样用JAVA得到中文姓名的首字母缩写?李四返回的结果为LS
- JDK设置环境变量的问题
G Era designator
y Year
M Month in year
w Week in year
W Week in month
D Day in year
d Day in month
F Day of week in month
E Day in week
a Am/pm er
H Hour in day (0-23)
k Hour in day (1-24)
K Hour in am/pm (0-11)
h Hour in am/pm (1-12)
m Minute in hour
s Second in minute
S Millisecond
z Time zone
Z Time zone是没有注意字母大小写的原因吗?
但是程序一的结果是the date is:Thu Oct 31 00:00:00 EET 2002怎么能只输出 31/10/2002呢我给的格式是这样的啊
System.out.println("curTime ="+java.text.DateFormat.getDateInstance().format(cal.getTime()));
顺手写的,给你参考一下。
public String stringToDate(String str){
try{
return sdf.format(sdf.parse(str));
}catch(Exception e){
e.printStackTrace();
return null;
}
}
public static void main(String[] args){
DateParser1 dp = new DateParser1(); String sss = "31/10/2003"; System.out.println("the date is:"+dp.stringToDate(sss));
}
}
java.sql.Date time=dp.stringToTime(timeto);
dda.java:32: incompatible types
found : java.lang.String
required: java.sql.Date
java.sql.Date time=dp.stringToTime(timeto);
是需要把String ‘31/10/2002’‘09:03:00'按'dd/MM/yyyy' 'HH:MM:ss'的格式存进数据库?还是必须存一个Date类型的值进数据库?如果你往数据库里存的是Date类型的话(不管是java.util.Date还是java.sql.Date),取出来都是Date类型的对象,直接调用该对象的toString时,都是按相应Date类的toString方法所设定的格式来输出的String(java.util.Date输出的是dow mon dd hh:mm:ss zzz yyyy格式的,java.sql.Date和这个不一样),这个格式的String不是你想要的格式,因此必须自己转换。一般的转换就是利用这个Date的对象来生成Calendar,然后用该Calendar对象的get方法取得相应年月日时分秒,然后自己拼字符串。Date类的getYear()等方法已经相应被Calendar.get(Calendar.YEAR)方法取代,不推荐使用了。如果数据库设计可以变更的话,像你这种情况最好把Date字段改成String类型的,
这样转换也方便。如果数据库不能改,还需要特定格式输出,就只能先取得Date对象,然后生成Calendar,取相应字段值,字符串相加这样来做了
我现在也就是能把String 转化成java.util.Date, 但这样格式差很多,而且怎么能在转化成java.sql.Date呢
能不能再给我讲讲
我这里用一个新的Date来代替
java.util.Date d1 = new java.util.Date();//这里换成你的Date
long l = d1.getTime();
java.sql.Date s1 = new java.sql.Date(l);//利用已有的java.util.Date来生成相应时间的java.sql.Date的实例,放到数据库中
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(s1);//从数据库中取出来的格式是java.sql.Date,转换成Calendarint year = c.get(c.YEAR);//取Calendar实例的各个Field的值
int month = c.get(c.MONTH)+1;//月份要加1,这是Calendar设计的毛病
int day = c.get(c.DATE);
int hour = c.get(c.HOUR);
int minute = c.get(c.MINUTE);
int second = c.get(c.SECOND);
System.out.println(""+year+"/"+month+"/"+day+" "+hour+":"+minute+":"+second);//拼成你想要的字符串
谢谢,不过这样出来的的确是java.sql.Date,但是格式是yyyy-MM-dd报错是 Data type missmatch incriteria expression
但是数据库的格式一定要是dd/MM/yyyy, 应该怎么改啊
如果都是日期类型,那没办法了,数据库里存的日期类型都是按java规定的格式来存放的,如java.sql.Date格式就是yyyy-MM-dd,java.util.Date就是dow mon dd hh:mm:ss zzz yyyy格式。
要不你比较的时候,把查询条件中日期格式转成你数据库的格式吧
就是把dd/MM/yyyy格式的日期换成yyyy-MM-dd格式的,然后再和数据库里的比较
数据库里的是dd/MM/yyyy的格式这样要怎么办啊
>数据库里的是dd/MM/yyyy的格式
感觉你好像存的是String类型的
自己定义的一套语法规范,我试了半天才试出来时间怎么匹配
你照下面的做吧,不用转来转去的我做测试的access数据库里,Date/Time类型存的日期格式是:2003-8-1 11:39:28
(access我几乎不用,不知道你怎么存成dd/MM/yyyy格式的,总之按照数据库里的格式组合你的查询字符串就是了)
根据你的用户选择的时间,把它拼成一个字符串,格式为"yyyy-MM-dd"
sql语句这样写:
String sql = "select * from Table where YourDate between #2003-08-01 00:00:00# and #2003-08-03 23:59:59#";
//数据库里存的有秒,所以用between判断。后面的秒自己加。日期两边要加#,否则老是报参数不足。我这边调试已经通过了
fft123() 你给的方法可以执行,很方便,不胜感激