EDITED для ясности и дополнительной информации:
Всего новичка для кодирования Ruby (и кодирования в целом), поэтому, пожалуйста, будьте осторожны.
У меня есть база данных MySQL, и я хочу вытащить некоторые данные из одной из таблиц, столбец которой помечен как "fulldate".
Следующий код работает, чтобы вытащить все строки после определенной даты.
start_date = Date.new(2018, 1, 2)
end_date = Date.new(2018, 1, 12)
clw_check = client.query('SELECT * FROM rotadates WHERE fulldate >"#{start_date}"')
clw_check.each do |row| puts row["fulldate"] end
Затем вывод представляет собой список дат из каждой строки.
Однако, когда я перехожу на
clw_check = client.query('SELECT * FROM rotadates WHERE fulldate <"#{end_date}"')
clw_check.each do |row| puts row["fulldate"] end
то это дает
=> []
Если я помещаю дату вместо выражения # {}, тогда я получаю список дат с меньшим и большим, чем выражения.
Я обыскал StackOverflow и сеть в целом, но не могу для жизни меня разобраться, почему он работает с первым выражением второго.
Проверка того, являются ли start_date и end_date датами или строками, говорит, что это даты, а столбец MySQL также является датой с идентичным форматом yyyy-mm-dd.
Пример строк из таблицы MySQL:
| idDate | фульддат | год | месяц | день | квартал | неделя | dayOfWeek | выходные | clw |
| 20180102 | 2018-01-02 | 2018 | 1 | 2 | 1 | 1 | 2 | 0 | 1 |
| 20180103 | 2018-01-03 | 2018 | 1 | 3 | 1 | 1 | 3 | 0 | 1 |
| 20180104 | 2018-01-04 | 2018 | 1 | 4 | 1 | 1 | 4 | 0 | 1 |
| 20180105 | 2018-01-05 | 2018 | 1 | 5 | 1 | 1 | 5 | 0 | 1 |
| 20180106 | 2018-01-06 | 2018 | 1 | 6 | 1 | 1 | 6 | 1 | 1 |
Я понятия не имею, почему, но когда я передаю это в IRB, он не работает, тогда как в консоли Aptana это происходит.