2014-08-27 3 views
0

У нас есть столбец, который называется created, который является меткой времени mysql. Я должен выбрать записи, которые создаются между 17:00 предыдущего дня до сегодняшнего дня 4:59 вечера.Выбор определенного времени в mysql

Предположим, что я передаю программу в виде 25-8-2014, она должна принести мне все записи, созданные между 24 -8-2014 с 17:00 до 25-8-2014 16:49. Как написать запрос для этого?

ответ

0

Вы можете использовать статью BETWEEN. Оператор BETWEEN выбирает значения в пределах диапазона. Значения могут быть числами, текстом или датами.

Синтаксис:

SELECT column_name(s) 
FROM table_name 
WHERE column_name BETWEEN value1 AND value2; 

Пример:

Select * from tableNawhere created between date1 and date2; 

Примечание: В вашем случае, date1 должен быть (date2 - 1day)

+0

Неправильно, если date2 = DATE1 - 1 день, он будет получать 0 записей. Также обратите внимание, что между включенными. И я сомневаюсь, что OP хочет вставлять даты вручную каждый раз, когда он выполняет запрос. – fancyPants

1
select * from your_table 
where created between 
curdate() - interval 1 day + interval 17 hour 
and 
curdate() + interval 16 hour + interval 59 minute; 

или

select * from your_table 
where created between 
date_format(now() - interval 1 day, '%Y-%m-%d 17:00:00') 
and 
date_format(now(), '%Y-%m-%d 16:59:00'); 

или

select * from your_table 
where created between 
concat(curdate() - interval 1 day, ' 17:00:00') /*note the whitespace before 17*/ 
and 
concat(curdate(), ' 16:59:59'); 
Смежные вопросы