powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / дни рождений
14 сообщений из 39, страница 2 из 2
дни рождений
    #32781236
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xax_nvПроверено - работает.
Кстати, не работает. Вернее, работает неправильно:
Cоздай 3 записи:
Дата_рождения30-12-200031-12-200001-01-2001
Поставь текущей датой 30-12-2004. Запрос вернет только 01/01.
...
Рейтинг: 0 / 0
дни рождений
    #32781296
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Признаю. Буду думать.
...
Рейтинг: 0 / 0
дни рождений
    #32781526
mursilka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я вот как сделала на ближайшие семь дней

SELECT днирожден.[Дата рождения], днирожден.Фио, днирожден.Организация
FROM днирожден
WHERE (((Month([днирожден].[Дата рождения]))=Month(Date())) AND ((Day([днирожден].[Дата рождения])-Day(Date()))>=0 And (Day([днирожден].[Дата рождения])-Day(Date()))<=7))
ORDER BY (Day(днирожден.[Дата рождения]));
...
Рейтинг: 0 / 0
дни рождений
    #32781570
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень хорошо. Только работать будет неправильно. Так, например, 30 числа любого месяца будет выдавать только именинников, у которых дни рождения 30 или 31 (если такое есть) числа этого месяца, а никак не в ближайшие 7 дней.
...
Рейтинг: 0 / 0
дни рождений
    #32781586
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем, "наша песня хороша - начинай с начала" :)
...
Рейтинг: 0 / 0
дни рождений
    #32781589
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:)
...
Рейтинг: 0 / 0
дни рождений
    #32782307
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал, у меня только с Union получилось (если DateSerial использовать),
т.к. в аргументе должен присутствовать то один год, то другой, в зависимости
от близости к концу года. Может так IIF как-то туда втиснуть можно, не
пробовал.

SELECT surname & ' ' & firstname AS ФИО,
DateSerial(Year(Now()),Month(datebirth),Day(datebirth)) AS
СледующийДеньРождения, Main.DateBirth
FROM Staff
WHERE datebirth is not null and
DateSerial(Year(Now()),Month(datebirth),Day(datebirth)) between now() and
now()+[Введите интервал]
UNION SELECT surname & ' ' & firstname AS ФИО,
DateSerial(Year(Now())+1,Month(datebirth),Day(datebirth)) AS
СледующийДеньРождения, Main.DateBirth
FROM Staff
WHERE datebirth is not null and
DateSerial(Year(Now())+1,Month(datebirth),Day(datebirth)) between now() and
now()+[Введите интервал]
ORDER BY СледующийДеньРождения, ФИО;

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
дни рождений
    #32782653
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть так:

Код: plaintext
1.
2.
SELECT Фио, [Дата рождения]
FROM днирожден 
WHERE (((DateSerial(Year(([dt]),Month([Дата рождения]),Day([Дата рождения]))) Between CDate([dt]) And CDate([dt])+ 2 )) OR (((DateSerial(Year([dt])+ 1 ,Month([Дата рождения]),Day([Дата рождения]))) Between CDate([dt]) And CDate([dt])+[n]));

где параметры dt - дата от которой пляшем и n - количество дней вперед от этой даты. Что касается использования функции CDate, то, наверное, лучше заменить ее на DateSerial. Но для идеи - достаточно и так.
...
Рейтинг: 0 / 0
дни рождений
    #32807836
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На тот же вопрос в другом топике автора

Программист-Любитель ответилНемного длинно, наверное:
Фиктивная дата рождения, как будто в текущем году:
IIf(IsNull([dtPersonBirthday]),Null,DateSerial(Year(Now()),Month([dtPersonBirthday]),Day([dtPersonBirthday]))) AS dtPersonFictBirthday,

Осталось до фиктивной даты рождения, если уже прошла, то отрицательное:
[dtPersonFictBirthday]-Date() AS nPersonBirthdayDiffTY,

Фиктивная дата рождения, как будто в следующем году:
IIf(IsNull([dtPersonBirthday]),Null,DateSerial(Year(Now())+1,Month([dtPersonBirthday]),Day([dtPersonBirthday]))) AS dtPersonFictBirthdayNY,

Осталось до фиктивной даты рождения в следующем году:
[dtPersonFictBirthdayNY]-Date() AS nPersonBirthdayDiffNY,

Правильное значение осталось в диапазоне 0-365:
IIf([nPersonBirthdayDiffTY]<0,[nPersonBirthdayDiffNY],[nPersonBirthdayDiffTY]) AS nPersonBirthdayDiff,

Ну и число полных лет:
IIf([nPersonBirthdayDiffTY]>0,Year(Now())-Year([dtPersonBirthday])-1,Year(Now())-Year([dtPersonBirthday])) AS nPerso
...
Рейтинг: 0 / 0
дни рождений
    #32808104
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
GeoНа тот же вопрос в другом топике автора
Не совсем тот же.

mursilkaУ меня такой запрос:

SELECT днирожден.[Дата рождения], днирожден.Фио, днирожден.Организация
FROM днирожден
WHERE (((Month([днирожден].[Дата рождения]))=Month(Date())) AND ((Day([днирожден].[Дата рождения])-Day(Date()))>=0 And (Day([днирожден].[Дата рождения])-Day(Date()))<=7))
ORDER BY (Day(днирожден.[Дата рождения]));

Он выдает за семь дней вперед дни рождения, но только в текущем месяце и поэтому н-р 30 числа он не предупредит что 1-го завтра у кого-то день рождения.
Как сделать чтобы он начиная с 24 заглядывал и в следующий месяц?
...
Рейтинг: 0 / 0
дни рождений
    #32808482
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ВС
Не совсем то?
Чуть выше написано:
авторОчень хорошо. Только работать будет неправильно. Так, например, 30 числа любого месяца будет выдавать только именинников, у которых дни рождения 30 или 31 (если такое есть) числа этого месяца, а никак не в ближайшие 7 дней.
...
Рейтинг: 0 / 0
дни рождений
    #32808530
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ой. Виноват, каюсь. С меня два поста в минус.
...
Рейтинг: 0 / 0
дни рождений
    #32808759
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:) сегодня - 2 декабря
...
Рейтинг: 0 / 0
дни рождений
    #32809349
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Какие фамилии интересные... Только фамилию Фуфмгй не удалось расшифровать. Остальные смог.
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / дни рождений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]