Sql 将字符转换为类日期

Sql 将字符转换为类日期,sql,r,Sql,R,我有这个疑问 sql <- "select observationid::text,id,date, ST_X(location::geometry) as lon, ST_Y(location::geometry) as lat from test where date>= '1850-01-01' and date <'1851-01-01'" datain<-dbGetQuery(dbh,sql) 非常感谢您需要将datamin和da

我有这个疑问

sql <- "select 
    observationid::text,id,date, ST_X(location::geometry) as lon, ST_Y(location::geometry) as lat
    from test
    where date>=  '1850-01-01' and date  <'1851-01-01'"
datain<-dbGetQuery(dbh,sql)

非常感谢

您需要将datamin和datamax编码为日期:

datamin <- as.Date('1850-01-01')
datamax <- as.Date('1851-01-01')

datamin
dataminr不像其他编程语言那样解释字符串中的变量。您需要使用
paste
来构造查询字符串:
sql抱歉,但它不起作用(因为选择?)打印
sql
var,看看它是否包含您认为应该包含的内容。
Error in postgresqlExecStatement(conn, statement, ...) : 
  RS-DBI driver: (could not Retrieve the result : ERROR:  column "datamin" does not exist
datamin <- as.Date('1850-01-01')
datamax <- as.Date('1851-01-01')
datamin <- '1850-01-01'
datamax <- '1851-01-01'

sql <- sprintf("select 
        observationid::text,id,date, ST_X(location::geometry) as lon, ST_Y(location::geometry) as lat
        from test
        where date>= '%s' and date < '%s';",datamin,datamax)
datain<-dbGetQuery(dbh,sql)