【发布时间】:2019-06-13 11:40:30
【问题描述】:
连接oracle数据库后,想每天汇总一下数据。我正在使用 tbl() 函数提取数据。连接通过 RJDBC 运行。日期列存储为 char。
日期字符串如下所示(也包含时间): "2015-01-31 10:56:52.0"
我正在尝试将字符串转换为日期格式:
melds <- bibu %>%
select(DATE) %>%
mutate(Datday = as.Date(to_date(substr(DATE, 1, 10))))
运行此代码,我希望将字符串 (chr) 转换为日期。发生的情况是,字符串被正确剪切到日期,但时间保持为 0(“2015-01-31 00:00:00.0”)。该列也保留为 char 格式(而不是预期的日期)。
这里创建的sql查询:
melds %>% show_query()
<SQL>
SELECT "DATE", CAST(to_date(SUBSTR("DATE", 1, 10)) AS DATE) AS "Datday"
FROM (TXYZ)
以下问题后更新:
melds <- bibu %>%
select(DATE) %>%
mutate(Datday = as.Date(to_date(substr(DATE, 1, 10), "yyyy-MM-dd")), "%Y-%m-%d")
melds %>% show_query()
<SQL>
SELECT "DATE", CAST(to_date(SUBSTR("DATE", 1, 10), 'yyyy-MM-dd') AS DATE) AS "Datday", '%Y-%m-%d' AS """%Y-%m-%d"""
FROM (TXYZ)
错误:无法检索 JDBC 结果集
【问题讨论】:
-
你有没有找到答案?我一直在为这个问题苦苦挣扎一段时间。我可以使用 extract() 从 Oracle SQL 中分解 datetime 字段的各个部分,但是我必须将它们变成一个字符,然后再变成一个日期,而且我正在查询的数据太慢了。
-
不,很遗憾没有。我现在一般都是通过python直接发送sql查询,很少用dplyr....
标签: r database oracle time dbplyr