mysql 查一段时间的小例子

来源:互联网 发布:批量处理图片的软件 编辑:程序博客网 时间:2024/04/27 23:15
String sql = "select sUserID from muserinfo,DRM_CONENTS where muserinfo.sUserID=DRM_CONENTS.cpid and DRM_CONENTS.adddate between '"
     + date + "' and '" + endDate1 + "'";
   System.out.println(sql);
 
 
//date is String "2007-01-01"
//endDate1 is String "2008-01-01"
 
把String 传到数据库里就可以``` 
select   *   from   table   where   date   between   '2004-05-07'   and   '2005-02-04'  
$date1=20010101010101;
$date2=20050101010101;

$query="SELECT * FROM DataInformation WHERE 1*time>;$date1 and 1*time<=$date2 and satellite='$satellite'";

//以前可以完成查询语句,1*time的格式与$date相同,但最近却不行了。。。。1*time=1*(2003-01-01 01:01:01)=2003无法完成查询。。。


一般来说,我们在mysql数据库纪录数据时间时,都会选择datatime类型,这样时间可以精确到秒。但随之而来的一个问题是,当我们要取得某一段时间内的数据内容会有一些时间转换上的麻烦,例如我们要取得2002年3月2日到2003年7月8日的这段时间的内容,我们第一个直觉就是应该将sql写成下面的形式:

select * from yourdb where sj>='2002-3-2' and sj<= '2003-7-8'

  这样以来,我们取得数据内容就是2002年3月2日0点以后到2003年7月8日0点(也就是7月7号12点之前)之间的内容,这个当然不是我们想要的,所以需要使用mysql的时间函数to_days()来写这个sql:

select * from yourdb where to_days(sj)>=to_days('2002-3-2') and sj<= to_days('2003-7-8')

  现在,我们所取得就是我们想要的结果了。