4

MySQL 4.1以降で、レコードの日付範囲間の特定の日付を照会する方法があるかどうか疑問に思っていますか?

簡単な例として、次のような日時範囲を持つ2つのレコードがあります。

ID  |  Activity  |  Start Date         | End Date

1      Closed       1/1/11 11:00:00      1/4/11 11:00:00

2      Open         1/15/11 10:00:00     1/19/11 09:00:00

私が知りたいのは、これらの各レコードの「開始日」と「終了日」の間の日付を取得する方法はありますか?そのようです:

1/2 / 11、1 / 3/11

1/16 / 11、1 / 17 / 11、1 / 18/11

または、少なくともそれに近づき、PHPを使用して残りの方法を完了する方法はありますか?ありがとう!

4

3 に答える 3

1

これはあなたの問題を解決するかもしれません:

SELECT * FROM `your_table` WHERE start_date > '2011-01-01' AND end_date < '2011-01-04'
于 2011-01-06T22:36:30.100 に答える
0

ヨルダン、

これはMySQL4では直接不可能です。そして私はこのロジックをデータベースレイヤーに配置すべきではないと思います。

ただし、StackOverflowには問題に関連する質問があり、解決策はストアドプロシージャです(ただし、そのためにはmysql 5が必要です)。ここで表示:2つの日付の間の日付のリストを取得します

使用する準備ができていませんが、次のWebページでPHPの問題に対する賢明なアプローチを見つけました:http: //prajapatinilesh.wordpress.com/2009/05/07/get-all-dates-between-two-dates- using-php-code /

これが正しい方向に役立つことを願っています。

于 2011-01-06T22:44:35.130 に答える
0

私は以前に私自身のmysqlクエリでこれを暗示しました。

SELECT id FROM table WHERE some_date BETWEEN start_date AND end_date
于 2011-01-06T23:01:36.933 に答える