问题描述
在用户输入的时间段内进行数据查询。格式:2012-04-18 数据库里也是这么存的。但这样取的数据不准确。比如用户选择了这样的一个时间段2012-01-01—2012-04-18 按照正常的理解就是应该到18号今天的所有数据。但查出来的确是17号的。 这样很不准确。请问有什么办法可以解决这个问题。我想要的数据是2012-01-10 00:00:00—2012-04-18 23:59:59 这样的时间段数据。。。。在此谢过了!!! 问题补充:morgan117 写道
解决方案
额。。这个你都可以设置的啊。如果是Calender这个类的话,有方法的set(int year, int month, int date, int hourOfDay, int minute, int second) ;或者直接用GregorianCalendar这个类的构造方法。第二,你的数据库怎么存的是2012-04-18?我记得数据库里的date类型是有分钟跟秒的,你存2012-04-18这个,默认的是2012-04-18 00:00:00的。
解决方案二:
select * from table where time>='2012-01-01' and time<='2012-04-18'
解决方案三:
额。。连需求都不知道很难有解决方案的。直接用sql语句查吧。select * from table where to_date(字段,'yyyy-mm-dd hh:mi:ss') between to_date('2012-01-01','yyyy-mm-dd') and to_date('2012-04-18 23:59:59','yyyy-mm-dd hh:mi:ss');
解决方案四:
那他是怎么取出2012-01-01—2012-04-17号的数据的呢?难道是拿出来转化成java再比较?这样你存成2012-04-18 00:00:00这样的string不行吗?