1.将一个java.util.Date的数据插入到datetime的项,在插入或取出时要将java.util.Date和java.sql.Date类型进行转换
2. 在数据库中进行时间大小的比较
其中StringUtils.isNull判断一个字符串是否为空,StringUtils.format()根据正则表达式进行匹配将不同格式(yyyy-mm-dd等)转换成java.util.Date
可以看到,还是单引号的问题,如果不用单引号,查出的结果与预期不相符
- //p的类型是java.util.Date
- java.sql.Date date=new java.sql.Date(p.getTime());
- 在将date插入数据库时,要用单引号将date引起来,就像插入字符串时一样
2. 在数据库中进行时间大小的比较
其中StringUtils.isNull判断一个字符串是否为空,StringUtils.format()根据正则表达式进行匹配将不同格式(yyyy-mm-dd等)转换成java.util.Date
- public void setOrderDateInterval(String startDate,String endDate){
- //两个时间都不为空,查询时间段内的对应票信息
- if(!StringUtils.isNull(startDate)&&!StringUtils.isNull(endDate)){
- resultSQL.append(" and orderDate >='");
- resultSQL.append(new java.sql.Date(StringUtils.format(startDate).getTime()));
- resultSQL.append("'");
- resultSQL.append(" and orderDate <='");
- resultSQL.append(new java.sql.Date(StringUtils.format(endDate).getTime()));
- resultSQL.append("'");
- }
- else{
- //查询结束时间之前的所有对应票的信息
- if(StringUtils.isNull(startDate)&&!StringUtils.isNull(endDate)){
- resultSQL.append(" and orderDate <='");
- resultSQL.append(new java.sql.Date(StringUtils.format(endDate).getTime()));
- resultSQL.append("'");
- }
- else{
- //查询开始时间之后的所有对应票的信息
- if(!StringUtils.isNull(startDate)&&StringUtils.isNull(endDate)){
- resultSQL.append(" and orderDate >='");
- resultSQL.append(new java.sql.Date(StringUtils.format(startDate).getTime()));
- resultSQL.append("'");
- }
- }
- }
- 数据库的执行语句
- select * from ticketinfo where 1=1 and orderDate >='2007-08-07' and orderDate <='2007-08-13'
- }