1

たとえば、昨日の午後 6 時から今日の午前 10 時までに追加された値を照会する SELECT ステートメントを作成する場合、どのような関数が関係するでしょうか?

背景:

私は人々がナイトクラブをライブで評価するアプリを作っているので、ある夜の時間帯は通常、ある日の午後 6 時から次の日の午後 10 時までです。さらに明確にするために、あなたが外出していて、「X」クラブまたは会場が今日良いかどうかを知りたいと想像してください. 私が作成しているアプリは、クラブの列のサイズの投票を登録します。人々が入るかどうかなど. 22:00 の列が非常に大きい場合、両方の情報が表示されるはずです。「X」クラブが午後 6 時から翌日の午前 10 時までに受け取った票だけを知りたいとします。クラブが「昨日」または先週どうだったか知りたくありません。あなたはその場所が今日どのように進んでいるのかを知りたいと思っています。紛らわしかったら申し訳ありませんが、今ではより明確になったと思います。

では、ある日に開始して別の日に終了するインターバルをどのように処理するのでしょうか?

PSを使用していると思い始めています

WHERE DATE(date_added) = CURDATE() 

翌日には関連するロジックが台無しになるため、そのバリアントは良いアプローチではありません。(私の日付列はdate_added)

4

3 に答える 3

1

あなたのdate_addedはタイムスタンプまたは日時だと思います。

SELECT * FROM yourTable
WHERE date_added BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-%d 22:00:00') 
                     AND DATE_FORMAT(CURDATE() + INTERVAL 1 DAY, '%Y-%m-%d 10:00:00')

編集:

このようなことを意味しますか?

SELECT * FROM yourTable
WHERE date_added BETWEEN CASE WHEN TIME(NOW()) BETWEEN '22:00:00' AND '23:59:59' THEN DATE_FORMAT(CURDATE(), '%Y-%m-%d 22:00:00') 
                              WHEN TIME(NOW()) BETWEEN '00:00:00' AND '10:00:00' THEN DATE_FORMAT(CURDATE() - INTERVAL 1 DAY, '%Y-%m-%d 22:00:00') 
                         ELSE NULL
                         END
                 AND     CASE WHEN TIME(NOW()) BETWEEN '22:00:00' AND '23:59:59' THEN DATE_FORMAT(CURDATE() + INTERVAL 1 DAY, '%Y-%m-%d 10:00:00')
                              WHEN TIME(NOW()) BETWEEN '00:00:00' AND '10:00:00' THEN DATE_FORMAT(CURDATE(), '%Y-%m-%d 10:00:00')
                         ELSE NULL
                         END

クエリが時間範囲内に起動されない場合、結果は NULL です。

于 2013-06-28T13:56:22.733 に答える
1

BETWEENクエリを使用できます。

SELECT * FROM your_table 
WHERE date_added BETWEEN '2013-06-27 18:00:00' and '2013-06-28 22:00:00'
于 2013-06-28T13:57:49.323 に答える
0

時間を気にする場合は、StartTimeandの列があります。EndTime現在何が起こっているかを確認するには:

where now() between StartTime and EndTime

特定の日付に何が起こっているかを知りたい場合:

where @THEDATE between date(StartTime) and date(EndTime)

between日付/時刻についての注意事項。時刻と時刻 (最初の例) または日付と日付 (2 番目の例) を比較する場合は、期待どおりに機能します。時刻と日付を比較するときに、希望どおりにならない場合があります (表示されていません)。

于 2013-06-28T13:56:33.243 に答える