|
|
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
xax_nvПроверено - работает. Кстати, не работает. Вернее, работает неправильно: Cоздай 3 записи: Дата_рождения30-12-200031-12-200001-01-2001 Поставь текущей датой 30-12-2004. Запрос вернет только 01/01. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2004, 13:05:43 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Признаю. Буду думать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2004, 15:51:16 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
А я вот как сделала на ближайшие семь дней SELECT днирожден.[Дата рождения], днирожден.Фио, днирожден.Организация FROM днирожден WHERE (((Month([днирожден].[Дата рождения]))=Month(Date())) AND ((Day([днирожден].[Дата рождения])-Day(Date()))>=0 And (Day([днирожден].[Дата рождения])-Day(Date()))<=7)) ORDER BY (Day(днирожден.[Дата рождения])); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 07:40:08 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Очень хорошо. Только работать будет неправильно. Так, например, 30 числа любого месяца будет выдавать только именинников, у которых дни рождения 30 или 31 (если такое есть) числа этого месяца, а никак не в ближайшие 7 дней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 09:04:03 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Вобщем, "наша песня хороша - начинай с начала" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 09:16:50 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Попробовал, у меня только с 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 14:14:56 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Может быть так: Код: plaintext 1. 2. где параметры dt - дата от которой пляшем и n - количество дней вперед от этой даты. Что касается использования функции CDate, то, наверное, лучше заменить ее на DateSerial. Но для идеи - достаточно и так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 16:03:36 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
На тот же вопрос в другом топике автора Программист-Любитель ответилНемного длинно, наверное: Фиктивная дата рождения, как будто в текущем году: 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2004, 15:25:03 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
GeoНа тот же вопрос в другом топике автора Не совсем тот же. mursilkaУ меня такой запрос: SELECT днирожден.[Дата рождения], днирожден.Фио, днирожден.Организация FROM днирожден WHERE (((Month([днирожден].[Дата рождения]))=Month(Date())) AND ((Day([днирожден].[Дата рождения])-Day(Date()))>=0 And (Day([днирожден].[Дата рождения])-Day(Date()))<=7)) ORDER BY (Day(днирожден.[Дата рождения])); Он выдает за семь дней вперед дни рождения, но только в текущем месяце и поэтому н-р 30 числа он не предупредит что 1-го завтра у кого-то день рождения. Как сделать чтобы он начиная с 24 заглядывал и в следующий месяц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2004, 17:08:50 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
2 ВС Не совсем то? Чуть выше написано: авторОчень хорошо. Только работать будет неправильно. Так, например, 30 числа любого месяца будет выдавать только именинников, у которых дни рождения 30 или 31 (если такое есть) числа этого месяца, а никак не в ближайшие 7 дней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2004, 21:15:08 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Ой. Виноват, каюсь. С меня два поста в минус. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2004, 22:36:09 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
:) сегодня - 2 декабря ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 08:32:01 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32781526&tid=1669997]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
77ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 409ms |

| 0 / 0 |
