sql >> データベース >  >> RDS >> Mysql

次回営業している時間を見つけましょう。 mysql時間の計算

    shop_idを見つけるには、NOW()で開いています。

    SELECT *
      FROM `shop_hours`
     WHERE `day_of_week` = DATE_FORMAT(NOW(), '%w')
       AND CURTIME() BETWEEN `open_time` AND `close_time`
    

    廃止

    明日を見つけるには 利用可能なopen_time s:

    SELECT *
      FROM `shop_hours`
     WHERE `day_of_week` = DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 DAY), '%w')
    

    編集 2:

    次に利用可能なopen_timeを見つけるには s:

      SELECT `shop_id`,
             MIN(CAST(CONCAT(DATE(DATE_ADD(NOW(), INTERVAL ((7 + DATE_FORMAT(NOW(), '%w') - `day_of_week`) % 7) DAY)), ' ', `open_time`) AS DATETIME)) AS `next_open_datetime`
        FROM `shop_hours`
    GROUP BY `shop_id`
    

    編集

    DATE_FORMAT(*DATE*, '%w') 0 = Sunday ... 6 = Saturdayの形式を使用します

    ISO形式を使用する場合1 = Monday ... 7 = Sunday day_of_weekで フィールドには、phpのdate('N')をバインドする必要があります クエリに(またはMysqlのif関数IF(DATE_FORMAT(NOW(), '%w') = 0, 7, DATE_FORMAT(NOW(), '%w')) 、しかしそれは醜いです)



    1. パラメータとしてのMySQLテーブル名

    2. Oracle®SQL*Loaderを使用したSQLServerデータの挿入

    3. T_BOOLEAN_ANDエラー?

    4. MYSQLサーバーがなくなりました