Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: MySQL Date and Time functions  (Прочитано 17092 раз)
0 Пользователей и 1 Гость смотрят эту тему.
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« : 05-09-2005 07:14 » 

В общем есть в таблице поле типа Date. Для выборки данных нужны три селекта для :
1. выбрать всё за сегодня
2. выбрать всё за текущий месяц
3. выбрать всё за период в 30 дней

Пунткт первый решил при помощи CURDATE()
Пункт третий решается с помощью DATE_SUB(CURDATE(),INTERVAL 30 DAY)

А вот как решить пункт два ?
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 05-09-2005 07:24 » new

2) WHERE MONTH(dt) = '09' AND YEAR(dt) = '2005'
3) можно еще так: WHERE dt BETWEEN '2005-08-12' AND '2005-09-11' - т.е. предварительно вычисляемые даты.

Работа с константами и выражениями, в которых не участвуют поля, идет намного быстрее.
Результат таких ф-ий, как CURDATE() и NOW(), может отличатся от времени клиента, если они находятся на разных машинах, либо используют разные часовые пояса.
« Последнее редактирование: 20-12-2007 17:10 от Алексей1153++ » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #2 : 05-09-2005 08:14 » 

2) WHERE MONTH(dt) = '09' AND YEAR(dt) = '2005'
Так к сожалению не подходит Жаль Я не знаю заранее никаких дат и прыгать мне надо от текущей
« Последнее редактирование: 20-12-2007 17:12 от Алексей1153++ » Записан

MCP, MCAD, MCTS:Win, MCTS:Web
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #3 : 05-09-2005 08:54 » 

Решение нашол Улыбаюсь
Вот так для выборки за текущий месяц
Код:
WHERE MONTH(date) = MONTH(CURDATE()) AND YEAR(date) = YEAR(CURDATE())
и вот так для выборки за текущий год
Код:
WHERE YEAR(date) = YEAR(CURDATE())
Улыбаюсь
P.S. date - название поля таблицы в котором хранится дата
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 05-09-2005 13:34 » 

Интересно, как ты назвал столбец "date" - это зарезервированное слово?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #5 : 05-09-2005 13:52 » 

Интересно, как ты назвал столбец "date" - это зарезервированное слово?
Слово зарезервированое вроде, но здесь я просто для наглядности так написал Улыбаюсь Поле на самом деле по другому называется Улыбаюсь
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 06-09-2005 06:46 » 

Улыбаюсь
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Шнибл
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 27-04-2006 09:40 » 

версия 4.1 без проблем создаются столбцы с именем date, text, может еще чего.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines