Потребителска търсачка за години и интервал от години

Giorgio

Registered
Здравейте. Първо да вметна, че скрипта, който го пише е на ruby, но проблема е свързан с sql и по-скоро логически. Опитваме се да създам търсачка базирана на gem, която търси комплексно по години, град и т.н. Проблема ми идва от смятането на години и намирането на интервал от потребители с определени години. Логиката по която смятам годините е следната

- потребителя въвежда годините в интервал в две импут полета
- смятам годините от днес назад във времето с тези стойности от полетата и намирам датите
- сравнявам за потребителите родени между тези дати.

Не знам дали логиката по която смятам е правилна. Заявката която се получава е следната.
Код:
 User Load (0.3ms)  SELECT DISTINCT "users".* FROM "users" LEFT OUTER JOIN "profiles" ON "profiles"."user_id" = "users"."id" WHERE (("profiles"."birthday" <= '2001-11-30' AND "profiles"."birthday" >= '1986-11-30'))
колоната с birthday е от типа дате и има следното съдържание

Profile Load (0.8ms) select id,birthday from profiles

+----+------------------+
| id | birthday |
+----+------------------+
| 1 | 1986-11-29 |
| 2 | 1992-11-29 |
| 3 | |
| 4 | |
+----+-------------------+

Проблема идва от това че като задам 25 години не ми връща запис 1, връща ми го когато избера 26 години
 
Проблема не е в заявката, а в логиката по която смяташ датите. До колкото виждам, според теб една година е времето от 1 Януари тази година до 1 Януари следващата година, а реално една година е от 1 Януари до 31 Декември.
 
Значи доколкото разбирам към втората дата трябва да добавя остатъка до 31 декември за да се изпълни вярно заявката. Вече много се омотах с тези дати

Поздрави,
Георги.
 

Back
Горе