Почему передача одного запроса даты через Mysql2 из Ruby работает, а другой нет?

0

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:

rotadates

| 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 |

Теги:
date
mysql2

1 ответ

0

Я понятия не имею, почему, но когда я передаю это в IRB, он не работает, тогда как в консоли Aptana это происходит.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню