我正在尝试使用
MAX(date)
从列中获取 RSQLite
。我不确定问题出在哪里,在数据库中还是在R
。
library(RSQLite)
library(tidyverse)
library(lubridate)
df <- tibble(date_col = whole_seq <- seq(ymd("2024-08-01"), ymd("2024-08-24"), by = "day"))
sql_db <- dbConnect(RSQLite::SQLite(), "", extended_types = TRUE)
dbWriteTable(sql_db, "df", df)
dbSendQuery(sql_db, "SELECT MAX(date_col) FROM df") %>% dbFetch()
dbSendQuery(sql_db, "SELECT DATE(MAX(date_col)) FROM df") %>% dbFetch()
dbSendQuery(sql_db, "SELECT MAX(DATE(date_col)) FROM df") %>% dbFetch()
在 R 中,日期被编码为从 1970 年 1 月 1 日开始的连续整数。有些函数会忘记
"Date"
类属性并返回相应的数字。在这种情况下,你必须强制回到真正的约会课程。
library(RSQLite)
library(tidyverse)
library(lubridate)
df <- tibble(date_col = whole_seq <- seq(ymd("2024-08-01"), ymd("2024-08-24"), by = "day"))
sql_db <- dbConnect(RSQLite::SQLite(), "", extended_types = TRUE)
dbWriteTable(sql_db, "df", df)
dbSendQuery(sql_db, "SELECT MAX(date_col) FROM df") %>%
dbFetch() %>%
mutate(max_date = as.Date(`MAX(date_col)`, origin = "1970-01-01"))
#> MAX(date_col) max_date
#> 1 19959 2024-08-24
创建于 2024-09-30,使用 reprex v2.1.0