У меня есть база данных с временными метками (без часового пояса), которую я хотел бы преобразовать в timestamptz (с часовым поясом) перед использованием 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, используя свой местный часовой пояс, поэтому я был бы признателен за любое решение этой более крупной проблемы. Спасибо!