2016-05-17 57 views
0

我希望下面的值,它是在猪一chararraychararray如何转换为datetime与猪毫秒拉丁

2016-05-11 23:59:57.628197 

2016-05-11T23:59:57.628-05:00 

我该怎么办呢转换?

以下是我的尝试考虑别名 'A2' 包含在一个名为 'input_date_value'

FOREACH a2 GENERATE input_date_value AS input_date:chararray, 
         ToDate(input_date_value,'YYYY-MM-DD HH:mm:ss.SSSSSS') AS modification_datetime:datetime; 

对于输入列chararray datetime值的列表 -

2002-07-11 16:58:40.249764 

输出是 -

2002-01-11T16:58:40.249-05:00 

'07'等月份值未被拾取, 创建的时间戳记的月份设置为01',即每月1月的所有日期。

有人可以帮忙。我究竟做错了什么 ?

回答

0

谢谢大家对他们的精彩建议00你看到的是时区TODATE实际上截断到3个位数。我试图在日期格式模式修复和成功(猪0.11)

使用小写字母d,而不是资本d解析日期值,就是这样......

Apparhently这里提到的解析的日期格式组件月份和日期是错误的,或只是在猪0.11不支持作为mentioned- https://www.w3.org/TR/NOTE-datetime

'YYYY-MM-DD HH:MM:SS.SSSSSS'

,而不是

'YYYY-MM-DD HH:MM:SS.SSSSSS'

现在给出正确的输出 -

2001- -28T16:04:49.223-05:00

输入 -

2001- -28 16:04:49.22388

1
+0

谢谢您的回答维卡斯。你错误地解释了我的朋友的问题。我知道它会将毫秒截至三位数。问题在于从chararray解析月份值,并将其生成到特定月份的日期时间。你可以请重新访问并提供答案吗? – nitinr708

+0

明白了吧,我认为这与ToDate中的解析有关,让我检查并更新 –

+0

看起来像是一个错误,无论你通过它的月份显示为1我所拥有的就是猪.012版本你有什么版本? –