1

我正在使用 MySql 5.5,

我在半径记帐表上使用以下查询。

  • 查询1:

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

和字段是 type acctstarttime,格式为.acctstoptimedatetimeYEAR-MT-DY HR:MN:SC

使用 query2 显示我的 query1 的结果并不总是准确的,query1 有时会返回任何内容或不正确的行。

  • 查询2:

    SELECT * FROM database.table WHERE framedipaddress = '192.168.1.1' ORDER BY acctstarttime DESC LIMIT 0, 400;

是否有不同的方法来查询两个datetime字段,或者是数据库健全性/数据是问题吗?

欢迎对我的逻辑中的错误提供任何指导。

这是我现在查询的问题。

4

1 回答 1

1

'2011-09-09' = '2011-09-09 00:00:00'因此,您只查询在此时间之前具有 acctstarttime 且在此时间之后具有 acctstoptime 的帐户。

如果您正在寻找 2011 年 9 月 9 日开始的帐户。然后你可以做

...
WHERE
acctstarttime >= '2011-09-09' AND acctstarttime < '2011-09-10'

如果您正在寻找在 2011 年 9 月 9 日开始和结束的帐户。然后做:

...
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.

于 2012-02-07T15:51:04.377 回答