Здравейте. Първо да вметна, че скрипта, който го пише е на ruby, но проблема е свързан с sql и по-скоро логически. Опитваме се да създам търсачка базирана на gem, която търси комплексно по години, град и т.н. Проблема ми идва от смятането на години и намирането на интервал от потребители с определени години. Логиката по която смятам годините е следната
- потребителя въвежда годините в интервал в две импут полета
- смятам годините от днес назад във времето с тези стойности от полетата и намирам датите
- сравнявам за потребителите родени между тези дати.
Не знам дали логиката по която смятам е правилна. Заявката която се получава е следната.
колоната с 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 години
- потребителя въвежда годините в интервал в две импут полета
- смятам годините от днес назад във времето с тези стойности от полетата и намирам датите
- сравнявам за потребителите родени между тези дати.
Не знам дали логиката по която смятам е правилна. Заявката която се получава е следната.
Код:
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'))
Profile Load (0.8ms) select id,birthday from profiles
+----+------------------+
| id | birthday |
+----+------------------+
| 1 | 1986-11-29 |
| 2 | 1992-11-29 |
| 3 | |
| 4 | |
+----+-------------------+
Проблема идва от това че като задам 25 години не ми връща запис 1, връща ми го когато избера 26 години