首页 > 解决方案 > 转换为日期并使用秘鲁时区

问题描述

我有这个数据框(data_loid),从 SQL 查询中检索到:

loid_last   last_modified_date
LIB3149     2020-05-29 19:10:13

我只想提取日期。所以我尝试了这种转换:

data_loid <- data_loid %>% 
  mutate(loid_creation_date = as.Date(last_modified_date))

但它返回给我:

loid_last   last_modified_date    loid_creation_date
LIB3149     2020-05-29 19:10:13   2020-05-30

我怀疑这是因为时区(我必须使用秘鲁时区),我尝试使用直接从查询中检索,SELECT loid_last, last_modified_date, date(last_modified_date) loid_creation_date FROM table where loid_last = 'LIB3149'但它返回我2020-05-30而不是2020-05-29.

我尝试了这种转换:

data_loid <- data_loid %>% 
  mutate(loan_creation_date = as.Date(last_modified_date, tz = "PET"))

但它不起作用。请,任何帮助将不胜感激。

标签: rpostgresqldplyr

解决方案


通过在查询中添加以下代码解决了这个问题:

--- Time zone is critical for this project
SET timezone = 'America/Lima';
SELECT loid_last, last_modified_date, 
date(last_modified_date) loid_creation_date 
FROM table 
WHERE loid_last = 'LIB3149';

之后,使用 R 轻松完成检索,并且日期正确。


推荐阅读