R sqldf问题:无法选择日期

R sqldf问题:无法选择日期,r,sqldf,R,Sqldf,问题与此类似() 但误差项不同: 假设我有一张桌子: OrderDate Sales 2005-02-28 12 2005-02-28 234 ... 在原始R数据框中,OrderDate的数据类型是double(在as.Date命令之后) 我想从OrderDate='2005-02-28'所在的表中执行类似的操作,但遇到错误: 错误:“sqldf('从OrderDate='2005'所在的表中选择* 我尝试了一些针对列出的问题和其他问题提出的解决方案,但仍然无法解决它 我觉得Order

问题与此类似() 但误差项不同:

假设我有一张桌子:

OrderDate  Sales
2005-02-28  12
2005-02-28  234
...
在原始R数据框中,OrderDate的数据类型是double(在as.Date命令之后)

我想从OrderDate='2005-02-28'所在的表中执行类似的操作,但遇到错误:

错误:“sqldf('从OrderDate='2005'所在的表中选择*

我尝试了一些针对列出的问题和其他问题提出的解决方案,但仍然无法解决它

我觉得OrderDate的数据类型有问题,但我不太清楚。例如,当我找到日期的数值并输入到我的条件中时,它遇到了这样一个错误(x是相应的数值):

.verify.JDBC.result(r)“无法检索JDBC结果集”中出错 对于“,:无法从中检索select*的JDBC结果集 OrderDate=x订单数量描述限制3的表格(无法分析“日期” 常量“x”;SQL语句:从OrderDate=x的表中选择* 按数量说明限制订购3[22007-175])


sqldf
与R一样,将日期存储为自1970-01-01以来的天数;有关详细信息,请参阅中的常见问题4

这将有助于:

df <- read.table(header=TRUE, text="OrderDate  Sales
2005-02-28  12
2005-02-28  234
2005-03-01  567
2005-03-03  890")
df$OrderDate <- as.Date(df$OrderDate)

library(sqldf)
sqldf(sprintf("select * from df where OrderDate=%i",as.Date("2005-02-28")))
#    OrderDate Sales
# 1 2005-02-28    12
# 2 2005-02-28   234

df
sqldf
与R一样,将日期存储为自1970-01-01以来的天数;有关详细信息,请参阅中的常见问题4

这将有助于:

df <- read.table(header=TRUE, text="OrderDate  Sales
2005-02-28  12
2005-02-28  234
2005-03-01  567
2005-03-03  890")
df$OrderDate <- as.Date(df$OrderDate)

library(sqldf)
sqldf(sprintf("select * from df where OrderDate=%i",as.Date("2005-02-28")))
#    OrderDate Sales
# 1 2005-02-28    12
# 2 2005-02-28   234

df
sqldf
与R一样,将日期存储为自1970-01-01以来的天数;有关详细信息,请参阅中的常见问题4

这将有助于:

df <- read.table(header=TRUE, text="OrderDate  Sales
2005-02-28  12
2005-02-28  234
2005-03-01  567
2005-03-03  890")
df$OrderDate <- as.Date(df$OrderDate)

library(sqldf)
sqldf(sprintf("select * from df where OrderDate=%i",as.Date("2005-02-28")))
#    OrderDate Sales
# 1 2005-02-28    12
# 2 2005-02-28   234

df
sqldf
与R一样,将日期存储为自1970-01-01以来的天数;有关详细信息,请参阅中的常见问题4

这将有助于:

df <- read.table(header=TRUE, text="OrderDate  Sales
2005-02-28  12
2005-02-28  234
2005-03-01  567
2005-03-03  890")
df$OrderDate <- as.Date(df$OrderDate)

library(sqldf)
sqldf(sprintf("select * from df where OrderDate=%i",as.Date("2005-02-28")))
#    OrderDate Sales
# 1 2005-02-28    12
# 2 2005-02-28   234

df
“sqldf('select*from table where OrderDate='2005')
如果
OrderDate
是使用H2后端的字符,则问题中显示的SQL语句将起作用。如果
OrderDate
日期”
class,假设您使用的是H2后端,问题中的代码尝试比较日期和字符类型。尝试此操作以确保比较是在相同的类型之间:
sqldf(“select*from table where OrderDate=date'2005-02-28'”)
“sqldf('select*from table where OrderDate='2005'
如果
OrderDate
是使用H2后端的字符,则问题中显示的SQL语句将起作用。如果
OrderDate
日期
class,假设您使用的是H2后端,问题中的代码尝试比较日期和字符类型。尝试此操作以确保比较是在相同的类型之间:
sqldf(“select*from table where OrderDate=date'2005-02-28'”)
“sqldf('select*from table where OrderDate='2005'
如果
OrderDate
是使用H2后端的字符,则问题中显示的SQL语句将起作用。如果
OrderDate
日期
class,假设您使用的是H2后端,问题中的代码尝试比较日期和字符类型。尝试此操作以确保比较是在相同的类型之间:
sqldf(“select*from table where OrderDate=date'2005-02-28'”)
“sqldf('select*from table where OrderDate='2005'
如果
OrderDate
是使用H2后端的字符,则问题中显示的SQL语句将起作用。如果
OrderDate
日期
class,假设您使用的是H2后端,问题中的代码尝试比较日期和字符类型。尝试此操作以确保比较在相同类型之间:
sqldf(“从OrderDate=date'2005-02-28'的表中选择*)