Тема: как вывести все поля за месяц в MySQL?
Вопрос программистам!
Есть функция
mysql_query("SELECT * FROM table WHERE date='2010-01-30'", $db); т.е. выводится поле с датой 30 января,
а как вывести все поля за январь?
Форум о программировании, операционных системах, безопасности, сайтостроении, железе, девайсах, сетях и тп
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Вопрос программистам!
Есть функция
mysql_query("SELECT * FROM table WHERE date='2010-01-30'", $db); т.е. выводится поле с датой 30 января,
а как вывести все поля за январь?
Скорее уж вопрос по SQL ![]()
select * from table where date >= '2010-01-01' and date < '2010-02-01'
или
select * from table where year(date) = 2010 and month(date) = 1
Второй запрос проще, но работает медленней. Если в БД много записей - ощутимо медленней.
Перенес тему в "Кодинг"
Пожалуйста, обращайтесь еще.
Безумный Программист, а как насчёт если Хранить дату в UNIXTIME? Т.е. хочу узнать как лучше хранить дату в UNIX или форматом 12-12-10 типа такого... т.е. что лучше или быстрее работает?
Насколько я знаю, в самой БД datetime все равно хранится в unix timestamp. По всей видимости, в 99% случаев выгоднее использовать datetime (не unix), поскольку это позволяет использовать возможности самой СУБД для работы с датой и временем, издержки же на преобразование строки-даты в unix timestamp в большинстве случаев незначительны. По крайней мере быстро придумать пример, где использование unix timestamp явно выгоднее datetime, мне что-то не получается (300wmr тому, кто придумает и аргументировано убедит меня в своей правоте). Если Вы не уверены, что имеете дело с таким редким случаем, используйте datetime.
Также важно помнить об оптимизации запросов, подобно приведенному выше примеру. Я постоянно сталкиваюсь с задачами, где приведенная оптимизация существенно ускоряет выполнение запроса.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
© 2005–2012 it-talk.org