СУБД под BSD/UNIX: PostgreSQL, MySQL и другие. Установка, настройка, репликация, резервное копирование и оптимизация.
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2007-05-25 13:34:05
Итак есть таблица с полем, в котором устанавливается время записи строки.
Код: Выделить всё
datetime timestamp NOT NULL default CURRENT_TIMESTAMP
Строки имеют вид:
Код: Выделить всё
2001-05-23 13:49:52
2002-05-23 13:49:53
2003-05-23 13:49:54
2004-05-23 13:49:55
2005-05-23 13:49:56
2006-05-23 13:49:56
2007-05-23 13:49:57
2008-05-23 13:49:57
2009-05-23 13:49:57
2010-05-23 13:49:58
Нужно с помощью запроса отобразить это поле, только чтобы в нём были
только года, результат запроса должен быть такой:
Код: Выделить всё
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
Нашёл в доках EXTRACT и DATE_FORMAT, но никак не могу применить.

Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
-
Контактная информация:
Непрочитанное сообщение
alex3 » 2007-05-25 13:41:27
а может с помощью шелла обработать?
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.
alex3
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2007-05-25 13:51:32
Разобрался. Я на PHP тут прогу пишу. Вот и нужно.
Получилось так:
Код: Выделить всё
SELECT DISTINCT(EXTRACT(YEAR FROM`date-time`)) FROM log ORDER BY `date-time`;
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
Alex Keda
- стреляли...
- Сообщения: 35501
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2007-05-25 16:01:03
а я бы на мусе, субстрингом сделал

))
Убей их всех! Бог потом рассортирует...
Alex Keda
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2007-05-25 16:51:20
lissyara писал(а):а я бы на мусе, субстрингом сделал

))
И как?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
Alex Keda
- стреляли...
- Сообщения: 35501
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2007-05-25 20:04:49
Код: Выделить всё
SELECT SUBSTRING_INDEX(`datetime`, '-', 1) FROM ....
навскидку - так, но надо уточнять синтаксис
Убей их всех! Бог потом рассортирует...
Alex Keda
-
bakake
- сержант
- Сообщения: 265
- Зарегистрирован: 2006-11-21 14:04:58
Непрочитанное сообщение
bakake » 2007-05-26 8:20:28
А вообще щас скажу!
Я так понимаю, что этот запрос для наполнения комбо-бокса (или если по хтмл-ному <select>'a) который будет использоваться в качестве фильтра в запросной форме?
Если так, то то при вызове этой формы через полгода-год, мускуль начнет сильно прогибаться из за необходимости пробежаться по довольно большой табличке. Проще завести отдельную табличку с годами и раз в год (или месяц) заполнять ее по крону

bakake
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2007-05-26 9:17:54
Для этого и нужно. У меня заполнение log будет около 100 000 строк в месяц. Думаешь не потянет?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3