У меня есть база данных с временными метками (без часового пояса), которую я хотел бы привести к временной метке (с часовым поясом) до использования collect()
. До сих пор я пробовал это:
db_tbl %>% mutate_if(lubridate::is.timepoint, funs(CAST))
Но я не могу понять, как добавить AS timestamptz
к этому вызову функции
Это дает мне:
Error in result_create(conn@ptr, statement) :
Failed to prepare query: ERROR: syntax error at or near ")"
LINE 1: SELECT "user_id", "time_zone", CAST("confirmed_at") AS "conf...
а также
db_tbl %>% mutate_if(lubridate::is.timepoint, funs(sql(paste0(., "::timestamptz"))))
Но я не могу понять, как заставить paste0()
выполняться вместо перевода в CONCAT
: это дает мне:
Applying predicate on the first 100 rows
<SQL>
SELECT "user_id", "time_zone", CONCAT_WS('', "confirmed_at", '::timestamptz') AS "confirmed_at"
FROM (SELECT "user_id", "time_zone", "confirmed_at"
FROM app.app_users) "paiaayosfl"
В конечном счете, я пытаюсь получить временные метки без R, предполагающего мой местный часовой пояс.