|
|
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Помогите пожалуйста люди. SELECT днирожден.Фио, днирожден.[Дата рождения] FROM днирожден WHERE (((Format([днирожден].[Дата рождения],"dd/\mm"))=Format(Date(),"dd/\mm"))); есть такой запрос, который выдает у кого сегодня день рождения, а как сделать чтобы сообщалось заранее за день или за два ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 09:07:09 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 09:22:47 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Витал Код: plaintext 1. 2. Такая конструкция, насколько я понял, вернет все дни рождения до конца текущего месяца. А если 31-го числа запрашиваем? : ) Mожно например так: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 10:07:51 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
<Блин, красиво, а я в свое время такой огород городил! Ну вобщем сделал все через .. Житомир!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2004, 21:06:13 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Красиво, но неправильно :) А если мы 31 декабря запрашиваем ,а имярек имел счастье родится 1 января ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2004, 22:40:38 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2004, 23:10:52 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
2 (c)VIG Все будет правильно, при 31 декабря выражение Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 09:22:43 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
xax_nv2 (c)VIG Все будет правильно, при 31 декабря выражение Код: plaintext Да что вы говорите? авторWHERE DateSerial(Year(Now()), Month([Дата рождения]), Day([Дата рождения]))>=DateSerial(Year(Now()), Month(Now()), Day(Now())) AND DateSerial(Year(Now()), Month([Дата рождения]), Day([Дата рождения]))<DateSerial(Year(Now()), Month(Now()), Day(Now())+2) А что даст выражение, выделенное красным, если сегодня 31 декабря ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 16:02:37 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
так, как будто, должно показывать всех, у кого сегодня, завтра и послезавтра Код: plaintext 1. (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 17:11:00 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
если чуть аккуратнее на предмет Null-значений, то так Код: plaintext 1. 2. 3. 4. (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 17:24:24 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
2 Victosha А чем плохо моё условие? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 18:42:59 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
AlTis2 Victosha А чем плохо моё условие? Код: plaintext Тем, что оно будет показывать только тех кто родился точно сегодня, или БУДЕТ рожден завтра или послезавтра. То есть для роддома в части родившихся сегодня до конца дня - работать будет. А в части завтра и послезавтра - кто заполнит чиселки для роддома? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 18:50:49 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
2 Victosha Красиво! Но тоже неправильно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 19:28:51 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
(c)VIG2 Victosha Красиво! Но тоже неправильно :) я не говорил, что "правильно". но почему неправильно, пока не вижу. может пример какой для слепых... кстати по теме - может кто скажет бестолковому, чем 'd' от 'y' отличается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 20:35:45 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Victosha но почему неправильно, пока не вижу. может пример какой для слепых... кстати по теме - может кто скажет бестолковому, чем 'd' от 'y' отличается? Потому ,что твой вариант (который в сущности является более компактной версией того ,что написал Раз(1)) , точно также не учитывает случай, когда день рождение выпадает на начало января. Специально для слепых :) Предположим ,что VIG родился 1 января 19хх года.31 декабря 2004 г тебя вызывает начальство и просит срочно подготовить приказ о премировании всех ,у кого день рождения в ближашие 3 дня.Как ты думаешь ,получит VIG премию ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 20:59:10 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
2 (с)VIG хороший пример, оказывается. сидю, морщю репу... (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 21:34:27 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
в Jet4 как будто такой вариант рабочий Код: plaintext 1. 2. 3. для 97-го придется писать так (там Round, кажется, не было) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 22:15:45 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
вот ёлки - а ведь был round-то. Это яво в VBA не было... http://support.microsoft.com/default.aspx?scid=kb;en-us;239104 стало быть пока Код: plaintext 1. 2. 3. как "кандидата" оставляю... что-то мне подсказывает, что пора спросить с (c)VIG-а - А как правильно? (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 22:31:13 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Было уже :) http://www.sql.ru/forum/actualthread.aspx?tid=112504&pg=-1&hl=%e4%e0%f2%e0+%f0%ee%e6%e4%e5%ed%e8%ff ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 22:39:55 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Victosha AlTis2 Victosha А чем плохо моё условие? Код: plaintext Тем, что оно будет показывать только тех кто родился точно сегодня, или БУДЕТ рожден завтра или послезавтра. То есть для роддома в части родившихся сегодня до конца дня - работать будет. А в части завтра и послезавтра - кто заполнит чиселки для роддома? мда... а слона то я и не увидел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2004, 00:08:43 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
замечание по предложенному варианту тут http://www.sql.ru/forum/actualthread.aspx?tid=112504&pg=2#1104288 (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2004, 01:51:58 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Предлагаю такой вариант Код: plaintext 1. 2. 3. 4. Проверено - работает. 2 (c)VIG А все-таки выражение DateSerial(Year(Now()), Month(Now()), Day(Now())+2) при 31 декабря даст 2 января! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2004, 09:46:15 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Для желающих проверить - ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2004, 10:25:17 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#18+
Что-то не хочет прикреплять файл... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2004, 10:35:03 |
|
||
|
дни рождений
|
|||
|---|---|---|---|
|
#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?all=1&fid=45&tid=1669997]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 387ms |

| 0 / 0 |
