Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Выбрать всех людей у которых сегодня день рождение

Сообщения:  [1-10]    [11-20]  [21-24] 

 
 автор: dert   (29.08.2008 в 10:46)   письмо автору
 
   для: Trianon   (28.08.2008 в 20:08)
 

Trianon, большое спасибо!

  Ответить  
 
 автор: mehelson   (29.08.2008 в 08:24)   письмо автору
 
   для: Trianon   (29.08.2008 в 08:01)
 

Спасибо большое ! доходчиво !
в этом случае с вашим вариантом -
Отображает строки 0 - 8 (9 всего, запрос занял 0.0006 сек.)

с другим -
MySQL вернула пустой результат (т.е. ноль строк). (запрос занял 0.0006 сек.)

данные :
INSERT INTO `test` (`id`, `bday`)
VALUES (1, '1990-01-02'),
(2, '2008-12-29'), 
(3, '2009-01-05'), 
(4, '2009-01-04'), 
(5, '2009-01-03'), 
(6, '2009-01-02'), 
(7, '2009-01-01'), 
(8, '2008-12-30'), 
(9, '1990-01-03');

интересная хрень получается... :)
Спасибо !

  Ответить  
 
 автор: Trianon   (29.08.2008 в 08:01)   письмо автору
 
   для: Mehelson   (29.08.2008 в 03:30)
 

date_format(bday, '%m%d')
BETWEEN date_format(CURDATE(), '%m%d')
AND date_format(ADDDATE(CURDATE() , INTERVAL 7 DAY), '%m%d')
AND year(bday) <= year(now()) 
===
date_format('1990-01-02', '%m%d')
BETWEEN date_format('2008-12-29', '%m%d')
AND date_format(ADDDATE('2008-12-29' , INTERVAL 7 DAY), '%m%d')
AND year('1990-01-02') <= year('2008-12-29') 
===
'01-02' BETWEEN '12-29'
AND date_format('2009-01-05', '%m%d')
'1990' <= '2008' 
===
'01-02' BETWEEN '12-29' AND '01-05'
AND 1
===
0 AND 1
===
0

  Ответить  
 
 автор: Mehelson   (29.08.2008 в 03:30)   письмо автору
 
   для: Trianon   (28.08.2008 в 23:57)
 

.

  Ответить  
 
 автор: Mehelson   (29.08.2008 в 03:30)   письмо автору
 
   для: Trianon   (28.08.2008 в 23:57)
 

А я не понял :)
Объясните пожалуйста
Ну и попадут в выборку эти 5 дней...(1 вариант Root)
При чём тут года?

  Ответить  
 
 автор: Root   (29.08.2008 в 00:03)   письмо автору
 
   для: Trianon   (28.08.2008 в 23:57)
 

хм..
'бага' какая-то :-)

  Ответить  
 
 автор: Trianon   (28.08.2008 в 23:57)   письмо автору
 
   для: Root   (28.08.2008 в 22:42)
 

Представьте себе, что bday = 1990-01-02 и сегодня 2008-12-29

  Ответить  
 
 автор: Root   (28.08.2008 в 22:42)   письмо автору
 
   для: Trianon   (28.08.2008 в 20:08)
 

хм..
объясните чем ваш вариант лучше моего:
SELECT * FROM tbl_name WHERE
date_format(bday, '%m%d')
BETWEEN date_format(CURDATE(), '%m%d')
AND date_format(ADDDATE(CURDATE() , INTERVAL 7 DAY), '%m%d')
AND year(bday) <= year(now());

?

  Ответить  
 
 автор: Trianon   (28.08.2008 в 20:08)   письмо автору
 
   для: Root   (28.08.2008 в 19:50)
 

SELECT * FROM tbl_name WHERE 
WHERE
  IF(date_format(CURDATE(), '%m%d') <= '1224' , 
       date_format(bday, '%m%d') 
            BETWEEN 
                 date_format(CURDATE(), '%m%d') 
               AND 
                 date_format(CURDATE()+INTERVAL 7 DAY, '%m%d'),
      NOT ( 
        date_format(bday, '%m%d') 
             BETWEEN 
                  date_format(CURDATE()+INTERVAL 8 DAY, '%m%d') 
               AND 
                  date_format(CURDATE()-INTERVAL 1 DAY, '%m%d')
       )
    )


и чему я больше всего удивлен - проблема 29 февраля ушла куда-то сама собой...

  Ответить  
 
 автор: Root   (28.08.2008 в 19:50)   письмо автору
 
   для: Trianon   (28.08.2008 в 19:31)
 

я уже ничё не понимаю.. :-)
SELECT * FROM tbl_name WHERE
date_format(bday, '%m%d') 
BETWEEN date_format(CURDATE(), '%m%d') 
AND date_format(ADDDATE(CURDATE() , INTERVAL 7 DAY), '%m%d')
AND year(bday) <= year(now() - INTERVAL $userdefined YEAR);

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-24] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования