Текущее время Mysql находится между двумя полями времени в mysql

#mysql #sql #time

#mysql #sql #время

Вопрос:

Вот схема:

 CREATE TABLE `available_timings` (
  `id` bigint(20) NOT NULL ,

  `from_time` time DEFAULT NULL,
  `to_time` time DEFAULT NULL
 
); 



INSERT INTO `available_timings` (`id`, `from_time`, `to_time`) VALUES
(1, '15:11:00' , '17:15:00'),
(2, '15:11:00', '15:11:00'),
(3,  '09:00:00', '12:30:00'),
(4,  '15:40:00', '15:40:00'),
(5,'13:30:00', '17:15:00'),
(6,  '16:10:00', '16:10:00'),
(7,  '07:45:00', '11:45:00'),
(8, '19:00:00', '22:30:00'),
(9,   '16:14:00', '16:14:00'),
(10,   '09:30:00', '17:45:00'),
(11,  '10:30:00','15:15:00');
  

http://sqlfiddle.com /#!9/fc9afe/2

Я пытаюсь выяснить, находится ли текущее время между from time и to time в mysql

 SELECT * 
FROM `available_timings` 
WHERE curtime() >=`from_time` or curtime() <=`to_time`
  

я искал много форумов, а также пробовал несколько запросов, но не смог добиться успеха.

Может ли кто-нибудь помочь мне здесь решить мою проблему

Спасибо

Комментарии:

1. между время от времени и время от времени

Ответ №1:

Используйте BETWEEN

 SELECT * 
FROM `available_timings` 
WHERE curtime() BETWEEN `from_time` AND `to_time`
  

Комментарии:

1. Абсолютно правильный ответ. В любом случае: sqlblog.org/2011/10/19 /…

2. запрос @Barmer.now выглядит просто, но для меня это не выходило из головы. большое спасибо

Ответ №2:

Используйте AND вместо OR

 WHERE curtime() >= `from_time` 
  AND curtime() <= `to_time`
  

Вы не хотите, чтобы какое-либо из этих условий было истинным. Вы хотите, чтобы оба они были истинными.

Комментарии:

1. @juergen.это работает на php очень хорошо, но не работает в sql.в любом случае спасибо за ответ

2. Этот код на 100% состоит из SQL. Там он не терпит неудачу. Должно быть что-то еще.