Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL:Възможно ли е да се създаде заявка, която оценява данни от различни записи?

Можете да разделите на 2 реда всеки ред, който съдържа Endtime на следващия ден:

WITH cte AS (
  SELECT *, Weekday day, Starttime time1, Endtime time2 FROM user_time
  WHERE Starttime < Endtime 
  UNION ALL
  SELECT *, Weekday, Starttime, '23:59' FROM user_time
  WHERE Starttime > Endtime 
  UNION ALL
  SELECT *, 
         DATE_FORMAT((STR_TO_DATE(CONCAT(LEFT(CURRENT_DATE, 8), Weekday), '%X-%V-%W') + INTERVAL 1 DAY), '%a'), 
         '00:00', Endtime 
  FROM user_time
  WHERE Starttime > Endtime
)  
SELECT No, Restaurant, Weekday, Starttime, Endtime 
FROM cte
WHERE day = DATE_FORMAT(CURRENT_DATE, '%a')
  AND NOW() BETWEEN CONCAT(CURRENT_DATE, ' ', time1, ':00') AND CONCAT(CURRENT_DATE, ' ', time2, ':00') 

Вижте демонстрацията .



  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, но отчитане на събития

  2. Извършване на ляво присъединяване в таблица много към много с условия

  3. mysql условно вмъкване - ако не съществува, вмъкнете

  4. Как да се справяме с тежкия трафик на MySQL?

  5. Как да разбъркате колона в MySql