站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题我现在有个问题是在数据库里时间格式为2006-5-29 下午 03:46:32我现在要通过JSP查询数据库的某个时间段的情况,有没有什么好的方法让数据

我现在有个问题是在数据库里时间格式为2006-5-29 下午 03:46:32我现在要通过JSP查询数据库的某个时间段的情况,有没有什么好的方法让数据

摘要: 我现在有个问题是在数据库里时间格式为2006-5-29 下午 03:46:32我现在要通过JSP查询数据库的某个时间段的情况,有没有什么好的方法让数据


我现在有个问题是在数据库里时间格式为2006-5-29 下午 03:46:32我现在要通过JSP查询数据库的某个时间段的情况,有没有什么好的方法让数据库时间格式转换成可以比较的时间格式。


用数据库的函数 比如 convert(varchar(50),getdate(),120) ,好像是把,记得不是很清楚了


首先把数据库中的格式转化成String型,好像用toString()这个方法,然后比较


这样不行的,因为转换只能作为查询结果,不能作为条件,放在WHERE 里


首先把数据提取出来,把它转化成long型,
java.util.Date datetime ="2006-5-29 下午 03:46:32";
long dt = datetime.getTime(); //毫秒数
String ret_ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")).format(dt);
把ret_ft写会到数据库中,用另外的字段(datetime)保存,就可以比较了。



// 组装sql语句
StringBuffer hql = new StringBuffer("select {i.*} from EmergencyList {i} where (1=1)");
// 日期格式化
SimpleDateFormat formats = new SimpleDateFormat("yyyy-MM-dd");
// 拼装日期查询语句 当天之前30天
hql.append(" and i.opTime>=convert(datetime,'").append(
formats.format(new Date())).append("')-30").append(" and i.opTime<=convert(datetime,'").append(
formats.format(new Date())).append("')+1").append("");


不同的数据库有不同的日期转换函数可以利用,一楼给出的是MS SQLSERVER中的用法。另外,楼主三楼的结论也太武断了吧。


数据库一定会有时间的比较和加减的函数.把JSP中的时间放到里面就行了.


学习


PreparedStatement pstmt = con.prepareStatement("SELECT * FROM a WHERE t BETWEEN ? AND ?");
pstmt.setDate(1, new Date(2000, 5, 5));
pstmt.setDate(2, new Date(2005, 5, 5));



↑返回目录
前一篇: 如何取DLL返回值?
后一篇: 《JSP2.0技术手册》里的一个例子我的运行结果有问题。