mysql - 为什么从 Ruby 通过 Mysql2 传递一个日期查询可以工作,而另一个则不行?

标签 mysql ruby date mysql2

为了清晰起见,已编辑并添加了信息:

对于 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 表中的行示例:

旋转

| id日期 |完整日期 |年 |月 |日 |季度 |周 |星期几 |周末| 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 控制台中它却起作用。

关于mysql - 为什么从 Ruby 通过 Mysql2 传递一个日期查询可以工作,而另一个则不行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47894616/

相关文章:

java - 插入和选择日期 (Java) (MySQL)

java - 如何使用java打印第二天

mysql - 如何在 MySQL 中查找重复值和更新值

Javascript从mysql计算小计和总计

mysql - 如何使用 MySQL 选择 JSON 数组中对象的键

ruby - 如何向将显示在 ruby​​gems.org 上的 gem 添加文档?

ruby - 如何让 Assets 编译成自己的文件并编译到 application.js 文件中?

ruby - Arduino POST ERROR 错误请求行 `'

javascript日期格式问题

mysql - MySql 使用哪种数据结构?