|
|
|
Ближайшие дни рождения (за текущий месяц).
|
|||
|---|---|---|---|
|
#18+
Люди подскажите как достать из базы ближайшие дни рождения, сам не соображу а найти пример или хотя бы наводку не могу. Нужно, чтото типа в этом месяце дни рождения у следующих людей... Буду рад подсказке или ссылочке :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2004, 22:56:18 |
|
||
|
Ближайшие дни рождения (за текущий месяц).
|
|||
|---|---|---|---|
|
#18+
И почему то не работает такой запрос: select * from main where birthday between CURDATE() and DATE_ADD(CURDATE(),INTERVAL 1 MONTH) INTERVAL менял от 1 до 12 уж хоть, что-то должно было попасть в такой интервал но результат - пустой :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 15:30:22 |
|
||
|
Ближайшие дни рождения (за текущий месяц).
|
|||
|---|---|---|---|
|
#18+
Ну в орасле я бы написал SELECT * FROM tabl1 WHERE birthday BETWEEN sysdate AND LAST_DAY(sysdate) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 16:00:11 |
|
||
|
Ближайшие дни рождения (за текущий месяц).
|
|||
|---|---|---|---|
|
#18+
Люди, что вы бредите? В поле birthday наверняка хранится дата рождения! Так вот она не может быть позже, чем "сегодня"!!! Не учитывайте вы год, тогда все сразу заработает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 16:32:17 |
|
||
|
Ближайшие дни рождения (за текущий месяц).
|
|||
|---|---|---|---|
|
#18+
2 RFT а как это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 23:54:48 |
|
||
|
Ближайшие дни рождения (за текущий месяц).
|
|||
|---|---|---|---|
|
#18+
Сравнивай не всю дату, а только месяц MONTH(date) и день DAYOFMONTH(date). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2004, 15:19:51 |
|
||
|
Ближайшие дни рождения (за текущий месяц).
|
|||
|---|---|---|---|
|
#18+
Вот, что у меня получилось SELECT name,birthday FROM main WHERE MONTH(birthday)=MONTH(CURRENT_DATE) это будет правильно работать? Я переводил часы вроде работает... но мало ли.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2004, 23:32:14 |
|
||
|
Ближайшие дни рождения (за текущий месяц).
|
|||
|---|---|---|---|
|
#18+
Работать будет, но не совсем верно: во-первых, у тебя так будут браться уже прошедшие д/р из текущего месяца, а во-вторых если напр. у чела ДР 1-го апреля, а сегодня 31-е марта, то ты узнаешь о его ДР в лючшем случае завтра. Так что пиши: SELECT name,birthday FROM main WHERE MONTH(birthday) = MONTH(CURRENT_DATE) AND DAYOFMONTH(birthday) > DAYOFMONTH(CURRENT_DATE) OR MONTH(birthday) = MONTH(CURRENT_DATE)+1 AND DAYOFMONTH(birthday) < DAYOFMONTH(CURRENT_DATE) Так у тебя будут выводиться дни рождения именно на предстоящий месяц. Только напиши еще обработку текущего декабря, а то без нее у тебя будет лажа, т.е. если сейчас декабрь, то так как я тебе написал январские ДР у тебя не появятся, т.к. MONTH(CURRENT_DATE)+1 будет 13. Лучше воткни сюда какую-нть переменную, которую предварительно вычисли в IF. P.S. А зачем ты часы переводил, я не понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 10:55:44 |
|
||
|
Ближайшие дни рождения (за текущий месяц).
|
|||
|---|---|---|---|
|
#18+
Часы(даты, пробовал разные месяца) переводил, чтобы посмотреть работает или нет. Ставил май 2005 и получал данные за май.... и т.п. Спасибо. Попробую усложнить запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 12:34:31 |
|
||
|
Ближайшие дни рождения (за текущий месяц).
|
|||
|---|---|---|---|
|
#18+
Посмотрел доку, и узнал что IF можно не ставить отдельно (он типа Decode в оракле). Значит, так. Поехали: SELECT name,birthday FROM main WHERE MONTH(birthday) = MONTH(CURRENT_DATE) AND DAYOFMONTH(birthday) > DAYOFMONTH(CURRENT_DATE) OR MONTH(birthday) = IF(MONTH(CURRENT_DATE)+1 = 13,1,MONTH(CURRENT_DATE)+1) AND DAYOFMONTH(birthday) < DAYOFMONTH(CURRENT_DATE) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 13:19:49 |
|
||
|
Ближайшие дни рождения (за текущий месяц).
|
|||
|---|---|---|---|
|
#18+
2 RFT Большое человеческое спасибо :) Ты спас меня от депрессии :) Как отсортировать результат если получеем: 18.01.1970 23.12.1968 24.12.1970 то простое ORDER BY DAYOFMONTH(birthday) уже не канает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 22:31:29 |
|
||
|
Ближайшие дни рождения (за текущий месяц).
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2004, 14:41:31 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=32836662&tid=1835473]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
24ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 285ms |

| 0 / 0 |
