mysql查询两个日期字段之间的日期

时间:2012-02-01 14:50:48

标签: mysql accounting freeradius

我正在使用MySql 5.5。

我需要在具有特定IP地址的日期找到用户ID。

字段是userid,ipaddress,startdate,enddate。

例如,我正在寻找2011年9月12日ip地址为192.168.1.1的用户ID。

查询类似 select * from database where ipaddress='192.168.1.1' and 2011-12-09 is in(startdate and enddate);

任何帮助指出这个逻辑缺陷都是值得欢迎的。谢谢。

3 个答案:

答案 0 :(得分:4)

目前还不是很清楚:

'2011-12-09' BETWEEN startdate AND enddate

或:

'2011-12-09' = startdate AND '2011-12-09' = enddate

答案 1 :(得分:1)

显而易见的解决方案就像:

  [...]
AND
  startdate <= '2011-12-09'
AND
  enddate >= '2011-12-09'

但是快捷方式using BETWEEN所以你可以简单地写一下:

  [...]
AND
  '2011-12-09' BETWEEN startdate AND enddate

注意: BETWEEN也适用于数字,字符串和其他内容,并且可以通过编写NOT BETWEEN来否定它 - 有时非常有用。

答案 2 :(得分:0)

由于有一个开始和结束日期,可能是以下几行:

SELECT * FROM table WHERE ipaddress = '192.168.1.1' AND '2011-12-09' >= startdate AND '2001-12-09' <= enddate;

或者如ypercube所指出,您可以使用BETWEEN

SELECT * FROM table WHERE ipaddress = '192.168.1.1' AND '2011-12-09' BETWEEN startdate AND enddate;