首页 > 解决方案 > 读取带有 SQL Server 偏移量的日期时间作为 R 中的日期时间

问题描述

我在 SQL Server 中有带偏移量的日期时间表:

datetime                              Value     Instance
--------------------------------------------------------
2021-06-18 03:48:30.0000000 +08:00    4194304   39069
2021-06-18 03:48:30.0000000 +08:00    1048576   39098
2021-06-18 03:48:30.0000000 +08:00     372736   39076

我正在使用 ODBC 库来查询 SQL。问题 - 我将列日期时间作为字符。我有数百万条记录,所以我花了几分钟时间将 datetime 列转换为 posixct ,这对我的任务来说太长了:

out_data %>% mutate (datetime = as.POSIXct(datetime, tz=Sys.timezone()))

在转换过程中,我也失去了正确的时区。是否有任何模块可以查询 SQL 并将该日期时间格式接收为日期时间?

标签: rsql-serverdatetimetimezoneodbc

解决方案


他们的关键是在 SQL 端解决这个问题。如果 R 接收日期时间格式的数据 - 无需转换。所以我们需要将带偏移量的日期时间转换为日期时间。

SQL 使这非常快:

select CAST(datetime AS datetime) as 'datetime', Value, Instance from Perf

推荐阅读