powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Правильный выбор месяца в DATETIME ?
5 сообщений из 5, страница 1 из 1
Правильный выбор месяца в DATETIME ?
    #38512703
Barvinok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
У меня стойкое ощущение, что вопрос нубский, но самостоятельно решить не смог, увы :(
Есть таблица
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE `media` (
	`mid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Registered media identifier',
	`event` DATETIME NOT NULL COMMENT 'Date and time the media was recorded',
	`type` ENUM('jpg','webm') NOT NULL COMMENT 'Media type',
	`bfn` CHAR(17) NOT NULL COMMENT 'Media base file name',
	`access` INT(10) UNSIGNED NOT NULL COMMENT 'Exclusive uid access',
	PRIMARY KEY (`mid`),
	UNIQUE INDEX `uniqueness` (`event`, `bfn`)
);


И для рендера календаря нужно сначала подгрузить список дней заданного месяца, для которых есть записи.
Я нарисовал запрос
Код: sql
1.
SELECT DISTINCT DAYOFMONTH(event) AS regdays FROM media WHERE (event>='2003-10-01') AND (event<=LAST_DAY('2003-10-01'));


Он работает, но мне он кажется каким-то корявым, так как я не уверен, какое время суток даёт LAST_DAY(), и если он даёт 00:00:00, то записи этого дня не попадут. Как это сделать грамотно?
...
Рейтинг: 0 / 0
Правильный выбор месяца в DATETIME ?
    #38512739
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barvinokтак как я не уверен, какое время суток даёт LAST_DAY(), и если он даёт 00:00:00, то записи этого дня не попадутLAST_DAY() возвращает значение типа DATE, и естественно, там будет 00:00:00. Добавьте (date_add) к нему ещё день и делайте сравнение < вместо <=
...
Рейтинг: 0 / 0
Правильный выбор месяца в DATETIME ?
    #38512781
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или используйте between.
...
Рейтинг: 0 / 0
Правильный выбор месяца в DATETIME ?
    #38512852
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, так ТСу нужен не замкнутый (between), а полуоткрытый интервал.
...
Рейтинг: 0 / 0
Правильный выбор месяца в DATETIME ?
    #38515001
Barvinok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опять мистика.
Запрос к этой таблице с целью выбрать все события одного дня
Код: sql
1.
SELECT * FROM media WHERE (event>="2003-10-8") AND (event<DATE_ADD("2003-10-8",INTERVAL 1 DAY));


использует индекс
Код: plaintext
1.
id; select_type ;table; type  ;possible_keys; key       ; key_len; ref; rows; Extra
1 ; SIMPLE      ;media; range ;uniqueness   ; uniqueness; 8      ; \N;  63  ; Using where
Такой же запрос с другим днём
Код: sql
1.
SELECT * FROM media WHERE (event>="2004-4-16") AND (event<DATE_ADD("2004-4-16",INTERVAL 1 DAY));


не использует
Код: plaintext
1.
2.
id; select_type; table; type; possible_keys; key; key_len; ref; rows; Extra
1 ; SIMPLE;      media; ALL;  uniqueness;    \N;  \N;      \N;  576;  Using where
добавил force index, но всё-таки хотелось бы понять логику такого решения
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Правильный выбор месяца в DATETIME ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]