[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с date(time_stampt)
anonymouse
Все работает до момента пока я не указываю вывод за 1 день.
Когда нужно вывести данные за месяц все ок!


Где подвох ?
ХЕЛП !

CREATE TABLE IF NOT EXISTS `stats_download` (
`record_id` int(11) NOT NULL auto_increment,
`product_id` int(11) NOT NULL,
`format_id` int(1) NOT NULL,
`pnr_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`site_id` int(11) NOT NULL default '1',
`download_date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`record_id`)
)
ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=79752 ;



И вот он сам запрос.
SELECT `sd`.`product_id`, COUNT(*) AS `count_all`, `f1`.`count_1`, `f2`.`count_2`, `f3`.`count_3`, `f4`.`count_4`, `f5`.`count_5` FROM `stats_download` AS `sd`  
INNER JOIN (
SELECT `product_id`, COUNT(*) AS `count_1`
FROM `stats_download`
WHERE `format_id` = 1 AND `pnr_id`='1' AND (`download_date` > '2010-05-01 00:00:01' AND `download_date` < '2010-05-31 23:59:59' )
GROUP BY `product_id`
) AS `f1` ON `sd`.`product_id` = `f1`.`product_id`
INNER JOIN (
SELECT `product_id`, COUNT(*) AS `count_2`
FROM `stats_download`
WHERE `format_id` = 2 AND `pnr_id`='1' AND (`download_date` > '2010-05-01 00:00:01' AND `download_date` < '2010-05-31 23:59:59' )
GROUP BY `product_id`
) AS `f2` ON `sd`.`product_id` = `f2`.`product_id`
INNER JOIN (
SELECT `product_id`, COUNT(*) AS `count_3`
FROM `stats_download`
WHERE `format_id` = 3 AND `pnr_id`='1' AND (`download_date` > '2010-05-01 00:00:01' AND `download_date` < '2010-05-31 23:59:59' )
GROUP BY `product_id`
) AS `f3` ON `sd`.`product_id` = `f3`.`product_id`
INNER JOIN (
SELECT `product_id`, COUNT(*) AS `count_4`
FROM `stats_download`
WHERE `format_id` = 4 AND `pnr_id`='1' AND (`download_date` > '2010-05-01 00:00:01' AND `download_date` < '2010-05-31 23:59:59' )
GROUP BY `product_id`
) AS `f4` ON `sd`.`product_id` = `f4`.`product_id`
INNER JOIN (
SELECT `product_id`, COUNT(*) AS `count_5`
FROM `stats_download`
WHERE `format_id` = 5 AND `pnr_id`='1' AND (`download_date` > '2010-05-01 00:00:01' AND `download_date` < '2010-05-31 23:59:59' )
GROUP BY `product_id`
) AS `f5` ON `sd`.`product_id` = `f5`.`product_id`
WHERE `sd`.`pnr_id`='1' and (`sd`.`download_date` > '2010-05-01 00:00:01' AND `sd`.`download_date` < '2010-05-31 23:59:59' )
GROUP BY `product_id` ORDER BY `count_all` DESC LIMIT 0,10







Спустя 11 минут, 41 секунда (10.08.2010 - 16:24) waldicom написал(а):
А один день указывается так:
`download_date` > '2010-05-01 00:00:01' AND `download_date` < '2010-05-01 23:59:59'

или каким другим образом?

Спустя 14 минут, 39 секунд (10.08.2010 - 16:39) anonymouse написал(а):
ну давай рассуждать логично...

Когда начало нового дня ? в 00 часов 00 минут 01 сек.
Ну а конец ? в 23.59.59

Спустя 10 минут, 38 секунд (10.08.2010 - 16:49) waldicom написал(а):
Цитата (anonymouse @ 10.08.2010 - 15:39)
ну давай рассуждать логично...

Когда начало нового дня ? в 00 часов 00 минут 01 сек.
Ну а конец ? в 23.59.59

Это все вместо ответа "да" или "нет"?

Спустя 41 минута, 40 секунд (10.08.2010 - 17:31) anonymouse написал(а):
SELECT '2008-12-31 23:59:59' + INTERVAL 1 SECOND;
->
'2009-01-01 00:00:00'


Если брать этот пример с сайта _http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

То ДА - я считаю что время надо вводить что бы получался интервал от начала дня и до конца его.

Если не прав уж поправьте меня. unsure.gif blink.gif

Спустя 19 минут, 4 секунды (10.08.2010 - 17:50) waldicom написал(а):
Разговор слепого с глухим, причем кто есть кто ваще не понятно...

Спустя 3 часа, 8 минут, 8 секунд (10.08.2010 - 20:58) linker написал(а):
Вот так
(`download_date` > '2010-05-01 00:00:01' AND `download_date` < '2010-05-31 23:59:59' )
получается 2 дня, а не 1.

Спустя 13 часов, 41 минута, 20 секунд (11.08.2010 - 10:39) anonymouse написал(а):
Цитата (linker @ 10.08.2010 - 17:58)
Вот так
(`download_date` > '2010-05-01 00:00:01' AND `download_date` < '2010-05-31 23:59:59' )
получается 2 дня, а не 1.

Получается - 31 день =)

Спустя 56 минут, 36 секунд (11.08.2010 - 11:36) linker написал(а):
smile.gif гы, точно

Спустя 3 дня, 2 часа, 47 минут, 9 секунд (14.08.2010 - 14:23) uWeb написал(а):
biggrin.gif


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.