Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Temukan waktu berikutnya bisnis buka; perhitungan jam mysql

Untuk mengetahui shop_id, yang terbuka untuk NOW()

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

Usang :

Untuk menemukan besok tersedia open_time s:

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

Sunting 2:

Untuk menemukan open_time yang tersedia berikutnya 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`

Sunting :

DATE_FORMAT(*DATE*, '%w') menggunakan format 0 = Sunday ... 6 = Saturday

Jika ingin menggunakan format ISO 1 = Monday ... 7 = Sunday di day_of_week . Anda bidang, Anda harus mengikat date('N') php's ke kueri Anda (atau gunakan fungsi if Mysql IF(DATE_FORMAT(NOW(), '%w') = 0, 7, DATE_FORMAT(NOW(), '%w')) , tapi itu jelek)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql pilih pembaruan

  2. Sintaks MySQL untuk menyisipkan baris baru di baris tengah?

  3. RuntimeError:OperationalError:(2003, Tidak dapat terhubung ke server MySQL di 'IPaddress of the instance'

  4. KESALAHAN 2006 (HY000) pada baris 1:Server MySQL telah hilang

  5. Haruskah saya menggunakan ON DELETE CASCADE, :dependent => :destroy, atau keduanya?