|
MySQL.RU - Webboard
Вернуться
Выборка данных (Alexandr) 01/11/2005 - 12:52:00
Re: Выборка данных (WebTech) 01/11/2005 - 17:18:22
Re: Выборка данных (Alexandr) 01/11/2005 - 17:54:33
Re: Выборка данных (WebTech) 01/11/2005 - 19:13:48
Re: Выборка данных (Dinky) 01/11/2005 - 19:38:26
Re: Выборка данных (bac) 01/11/2005 - 19:40:58
Re: Выборка данных (bac) 01/11/2005 - 19:44:24
Re: Выборка данных (Alexandr) 01/11/2005 - 19:52:52
Re: в лоб :) (Dinky) 01/11/2005 - 19:59:01
Re: в лоб :) (Alexandr) 01/11/2005 - 20:12:29
Re: тоже вроде в лоб (WebTech) 01/11/2005 - 20:17:02
Re: Мне кажется так (bac) 01/11/2005 - 21:49:42
Re: в лоб :) (Dinky) 01/11/2005 - 23:23:45
Re: to bac : работает но частично (Alexandr) 02/11/2005 - 16:56:54
Re: to WebTech (Alexandr) 02/11/2005 - 17:30:38
> Original message text:
> From: Alexandr - 01/11/2005 - 12:52:00
> Subject:Выборка данных
> -----------------
> Есть таблица пользователей с полями
> фамилия, имя. ... , дата рождения(тип date)
>
> Нужно вывести пользователей которых день рожденья был сегодня, вчера, позавчера ..(ДР за 4 прошедших дня включая сегоднешний)
>
> Кто-нибуть подскажите с запросом!!!
>
From: bac - 01/11/2005 - 21:49:42
Subject:Мне кажется так
-----------------
Сначала коментарии
1. Расчет построен на разнице в днях от начала года
2. Ньюансы начинаются при високосных годах.
- Если текущий год високосный и человек родился тоже в високосный год (или оба года не високосные) то разница должна быть от 0 до 3 включительно
- Если текущий год високосный, а год рожденья не високосный то разница в днях должна быть от 1 до 4 кроме случая когда это январь или февраль (разница от 0 до 3)
- Если текущий год невисокосный, а год рожденья високосный то разница в днях должна быть от -1 до 2 кроме случая когда это январь или февраль (разница от 0 до 3)
Ниже выражение считает число дней в феврале
day(adddate(concat(year(dBirthday),'-03-01'),-1))
select @CurYearFebDays:=day(adddate(concat(year(current_date),'-03-01'),-1));
select * from base where (day(adddate(concat(year(dBirthday),'-03-01'),-1)) = @CurYearFebDays and
dayofYear(current_date) - dayofyear(dBirthday) between 0 and 3 ) or (
day(adddate(concat(year(dBirthday),'-03-01'),-1)) > @CurYearFebDays and
if(month(current_date)>2,
dayofYear(current_date) - dayofyear(dBirthday) between 1 and 3,
dayofYear(current_date) - dayofyear(dBirthday) between 0 and 3 )) or (
day(adddate(concat(year(dBirthday),'-03-01'),-1)) < @CurYearFebDays and
if(month(dBirthday)>2,
dayofYear(current_date) - dayofyear(dBirthday) between -1 and 2,
dayofYear(current_date) - dayofyear(dBirthday) between 0 and 3 ) )
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
24798
|
|