将Oracle时间戳转换为R中的日期/时间

时间:2012-10-10 18:06:11

标签: r datetime

我经常将Oracle的数据读入R。为了绕过某些表中的TIMESTAMP格式,我在SQL语句中以TO_CHAR作为字符串读入列。

但是,我想将字符串中保存的数据转换回R可以使用的日期+时间格式。不幸的是,我不知道如何做到这一点,特别是考虑到AM / PM组件。剥离日期很容易,但我不知道如何保留每条记录的时间部分。

以下是一些数据记录:

c("31-JUL-12 10.08.35.432 AM", "31-JUL-12 08.53.18.316 AM", "18-JUL-12 01.17.52.939 PM", 
"13-AUG-12 05.34.11.405 PM", "15-AUG-12 02.04.31.505 PM", "21-AUG-12 09.10.03.976 AM"
)

一个注意事项:这些数据是时区EST。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:6)

如果你处理日期/时间很多,你应该熟悉?strptime

> strptime(oracle, format='%d-%b-%y %I.%M.%OS %p', tz='America/New_York')
[1] "2012-07-31 10:08:35.432 EDT" "2012-07-31 08:53:18.316 EDT" "2012-07-18 13:17:52.939 EDT" "2012-08-13 17:34:11.405 EDT" "2012-08-15 14:04:31.505 EDT" "2012-08-21 09:10:03.976 EDT"

请注意,我认为“EST”你真正意味着东部时间在纽约,纽约。来自help(timezone)

  

请注意,其中一些名称可能与您的想法不同:特别是EST是加拿大使用的时区,没有夏令时,而不是EST5EDT和(澳大利亚)东部标准时间。