SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 04.12.2009 14:18:12

Globulopolis
Участник
Зарегистрирован: 17.09.2009
Сообщений: 23

Выборка по диапазонам дат

Есть некая таблица с неким содержимым. В ней есть 2 поля pr_sdate и pr_edate в формате DATETIME вида 2009-12-04 12:00:00

И есть задача. Нужно
1. Узнать кол-во записей за текущий месяц
2. Кол-во записей за неделю
3. Кол-во записей за день.

Для 1-го пробовал такой запрос

SELECT COUNT(`pr_id`) FROM `#__premieres` WHERE `pr_sdate` = DATE_FORMAT(NOW(), '%Y-%m-%d');


и где-то наступаю на грабли. не могу понять где sad

Неактивен

 

#2 04.12.2009 14:29:55

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Выборка по диапазонам дат

WHERE MONTH(`pr_sdate`) = MONTH(NOW());

Неактивен

 

#3 04.12.2009 15:05:58

Globulopolis
Участник
Зарегистрирован: 17.09.2009
Сообщений: 23

Re: Выборка по диапазонам дат

гм... хорошо... а как выбрать период от текущего дня до конца месяца(недели) ?

Неактивен

 

#4 04.12.2009 15:30:20

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Выборка по диапазонам дат

Например, до конца недели:


SELECT COUNT(`pr_id`) FROM `#__premieres` WHERE `pr_sdate` between now() and now()+interval 7 - dayofweek(now()) day;


http://dev.mysql.com/doc/refman/5.0/en/ … y-ref.html

Неактивен

 

#5 04.12.2009 17:04:15

Globulopolis
Участник
Зарегистрирован: 17.09.2009
Сообщений: 23

Re: Выборка по диапазонам дат

vasya написал:

Например, до конца недели:


SELECT COUNT(`pr_id`) FROM `#__premieres` WHERE `pr_sdate` between now() and now()+interval 7 - dayofweek(now()) day;


http://dev.mysql.com/doc/refman/5.0/en/ … y-ref.html

в результате 0.
дата pr_sdate = 2009-12-01 12:00:00 и pr_edate = 2009-12-30 12:00:00, а текущая дата 2009-12-04 то если делать выборку по приведенному запросу, ничего не получаем в результате.

Неактивен

 

#6 04.12.2009 17:12:27

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Выборка по диапазонам дат

Сегодня 4, конец недели 6ое, а pr_sdate = 2009-12-01, т.е. не попадает в период от текущего дня до конца  недели (с 4го до 6го). Логично, что в результате 0.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson