Групирование по месяцам в MySQL
1.
KingNLO (05.12.2009 / 17:17)
Есть ли отдельная функция в мускуле которая может группировать дату (UNIX) по месяцам? Пробовал GROUP BY, но толком ничего не вышло.
2.
Gendalf (06.12.2009 / 12:12)
можно, но лучше бы ты хранил в формате datetime. у тебя щас какой тип поля? INT?
3.
KingNLO (06.12.2009 / 12:34)
2 да инт
4.
Max (20.12.2009 / 08:19)
В mysql есть типы ячеек специально под дату и конкретно под год. А про месяц не слышал. Возможно в дейттайм с преобразованиями можно месяц только записать.
5.
Колян (20.12.2009 / 09:39)
Я реализовал через unixtime()
6.
ктулху (20.12.2009 / 11:05)
а почему нет то? Я тоже дату храню в виде unix времени) запрос примерно такой:
<?php
mysql_query("SELECT * FROM `tables` WHERE `time` > 'unix время начала месяца' AND `time` < 'unix время конца месяца' LIMIT 0, 30");
?>
7.
Б.В. (20.12.2009 / 11:41)
Храниш дату в в datetime и выводиш условием WHERE DATE_FORMAT( `time` , '%c' )='12'
p.s `time` это у название столбца...
8.
Gendalf (21.12.2009 / 15:08)
Извини, что не во время. Забыл про эту тему ))
Вобщем как то так
SELECT * FROM table GROUP BY MONTH(FROM_UNIXTIME(my_date))
9.
Max (23.12.2009 / 09:28)
Быстродействие с при использовании именно mysql дат - лучше в разы, в отличие от юникс-тайм. Это проверено.
10.
Max (23.12.2009 / 09:31)
По этому запись даты, времени и прочего нужно хранить в спец-типах столбцов и выводить тоже.
Хотя я сам использую unixtime удобно всё-таки
но не оптимально.
11.
Б.В. (23.12.2009 / 09:45)
Я в старых своих работах использовал юникс время... И работают эти скрипты до сих пор на ура пока что... Просто не зря придумали специальные типы данных для дат и функции для их пользования..
URL:
https://visavi.net/topics/3581