我正在使用MySql 5.5,
我在radius会计表上使用以下查询。
QUERY1:
SELECT * FROM database.table WHERE framedipaddress ='192.168.1.1'和'2011-09-09'PERWEEN acctstarttime AND acctstoptime;
acctstarttime
和acctstoptime
字段的类型为datetime
,格式为YEAR-MT-DY HR:MN:SC
。
使用query2显示我的query1结果并不总是准确的,query1有时会返回任何内容或不正确的行。
QUERY2:
SELECT * FROM database.table WHERE framedipaddress ='192.168.1.1'ORDED BY acctstarttime DESC LIMIT 0,400;
是否有不同的方法来查询两个datetime
字段,还是数据库健全/数据是问题?
欢迎任何对我的逻辑错误的指导。
以下是我现在查询的question。
答案 0 :(得分:1)
'2011-09-09' = '2011-09-09 00:00:00'
因此,您只查询在此时间之前具有acctstarttime的帐户以及此时间之后的acctstoptime。
如果您正在寻找在2011-09-09开始的帐户。然后你可以做
...
WHERE
acctstarttime >= '2011-09-09' AND acctstarttime < '2011-09-10'
如果您正在寻找在2011-09-09开始和结束的帐户。然后做:
...
WHERE
acctstarttime >= '2011-09-09' AND acctstarttime < '2011-09-10' AND
acctstoptime >= '2011-09-09' AND acctstoptime < '2011-09-10' AND
仅供参考,如果您使用BETWEEN
它包含边界,因此它将包含2011-09-10 00:00:00
。