mysql unixtimestmp selectする際のバグ??

 

5分ごとにunixtimestamp(13桁の)形式データを格納してるテーブルがある

今の時間は2014/02/28 10:13分。10:10分ぐらいのデータまで格納されているはずだ

select
FROM_UNIXTIME( timestamp_in_ms / 1000, "%Y-%m-%d %H:%i:%s" )as zz
from data2_current
WHERE

    timestamp_in_ms / 1000 BETWEEN UNIX_TIMESTAMP(‘2014-02-27 00:00:00’) AND UNIX_TIMESTAMP(‘2014-02-28 23:59:00‘)
AND
file=’http://est136-com.rh.shopserve.jp/SHOP/174210/list.html’
group by FROM_UNIXTIME(timestamp_in_ms / 1000, "%Y-%m-%d %H:%i:%s" )

実行結果:

| 2014-02-28 08:52:09 |
| 2014-02-28 09:02:11 |
| 2014-02-28 09:12:07 |
| 2014-02-28 09:27:08 |
| 2014-02-28 09:42:08 |
| 2014-02-28 09:57:08 |
| 2014-02-28 10:12:08 |
+———————+
344 rows in set (0.59 sec)

10:12分までのデータがあったポイントは僕がwhere文で2014-02-28 23:59:00まで指定していたこと

要するに10:12~23:59分間のデータは存在しないはずが範囲としては含まれているわけだ

select
FROM_UNIXTIME( timestamp_in_ms / 1000, "%Y-%m-%d %H:%i:%s" )as zz
from data2_current
WHERE

    timestamp_in_ms / 1000 BETWEEN UNIX_TIMESTAMP(‘2014-02-27 00:00:00’) AND UNIX_TIMESTAMP(‘2014-02-29 00:00:00‘)
AND
file=’http://est136-com.rh.shopserve.jp/SHOP/174210/list.html’
group by FROM_UNIXTIME(timestamp_in_ms / 1000, "%Y-%m-%d %H:%i:%s" )

だが、上記のように現在テーブルにないはずの日付を入れると実行結果がかなり変わる

実行結果:

Empty set, 344 warnings (0.77 sec)

ない!!!データがないと返してしまう。。

理由はしらんがunixtimestampで日付を指定して検索する時、注意する必要があるのは間違いない

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です