【问题标题】:How can I filter on date values?如何过滤日期值?
【发布时间】:2021-02-11 10:14:12
【问题描述】:

使用RODBC,我想查询一个表并返回80岁或以上的每个人。

我使用的查询(在我的 R 脚本中)是:

sqlQuery(con, "SELECT *
              FROM People
              WHERE BirthDT >= '1941-02-11'")

BirthDT 字段如下所示:

 [1,] "1937-07-12"
 [2,] "1939-04-20"
 [3,] "1938-11-10"
 [4,] "1987-10-24"
 [5,] "1991-07-04"
 [6,] "1984-03-24"
 [7,] "1986-03-14"
 [8,] "1937-08-18"
 [9,] "1938-09-28"
[10,] "1934-08-23"

我也试过这个(指定不同的日期格式):

sqlQuery(con, "SELECT *
              FROM People
              WHERE BirthDT >= '11/02/1941'")

和以前一样,它没有按预期过滤。

我尝试了此查询的一些变体,包括显式日期转换/转换,但似乎没有任何效果。

我哪里错了?

【问题讨论】:

  • 因为您将其标记为 r 问题,所以可以这样完成 'ab "2000-01-01"),] '
  • 这是一个 R 包,我想在 SQL 查询本身进入我的环境之前对其进行日期过滤。为清楚起见,添加了SQL 标签。
  • 这个答案可能会帮助你更多stackoverflow.com/questions/66152303/…
  • 看这里:stackoverflow.com/questions/15020299/rodbc-date-filter>我认为这会让你走得更远。
  • 这能回答你的问题吗? rodbc date filter

标签: sql r rodbc


【解决方案1】:

80 岁或以上。

这意味着他们的出生时间比当前日期(80 岁)早。您的比较方向错误:

sqlQuery(con, "SELECT *
              FROM People
              WHERE BirthDT <= '1941-02-11'")

【讨论】:

  • 漫长的一天……说实话,我什至没有怀疑我按错了键,因为一些较早返回的结果发生在 1941 年之前。事实上,为什么可能考虑到&gt;= 语法,发生了什么?
猜你喜欢
  • 2019-11-21
  • 2016-08-21
  • 2022-08-03
  • 2020-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-16
  • 2021-09-19
相关资源
最近更新 更多