mysql查询datetime字段的准确性

时间:2012-02-07 15:17:06

标签: mysql accounting

我正在使用MySql 5.5,

我在radius会计表上使用以下查询。

  • QUERY1:

    SELECT * FROM database.table WHERE framedipaddress ='192.168.1.1'和'2011-09-09'PERWEEN acctstarttime AND acctstoptime;

acctstarttimeacctstoptime字段的类型为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

1 个答案:

答案 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