c# - 如何在查询中将 .net DateTime.Ticks 转换为 Hive DateTime?

标签 c# datetime hadoop hive amazon-emr

我的日志文件在 DateTime.Ticks (635677577653488758) 中有一个列,我正在尝试将其转换为 Hadoop Hive 中的日期。

首先,我在 MySql 上尝试了下面的代码块,它成功了。但是相同的代码在 Hive 中不起作用,因为 date_add 函数适用于 INT。

SELECT DATE_ADD('2001-01-01 00:00:00', INTERVAL (MAX(f.date) - 631139040000000000)/10 MICROSECOND);

然后我会这样格式化...

SELECT DATE_FORMAT(MyDateFromTicks, '%Y-%m-%dT%T.%fZ');

我怎样才能做到这一点?

谢谢。

最佳答案

我找到了解决方案。我把它写在这里,所以如果有人走到这一步可以检查答案:)

我的报价:635683895215023579

EPOCH 刻度数:621355968000000000

SELECT FROM_UNIXTIME(CAST((635683895215023579 - 621355968000000000)/10000000 as BIGINT),'yyyy-MM-dd\'T\'HH:mm:ss.SSSZ');

关于c# - 如何在查询中将 .net DateTime.Ticks 转换为 Hive DateTime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30502264/

相关文章:

c# - 如何使用 C# 检测不存在的设备

python - 如何从开始日期和结束日期列表中识别缺失的日子?

mongodb - 如何使用原子操作增加 mongoDB 文档中的 Datetime 字段?吗啡也一样吗?

hadoop - 命令用法 :when to use hadoop fs and hdfs dfs

c# - 在 C# 中使用继承

c# - Unity IOC - 如何根据自定义属性注册类型?

python - 使用Python的xlrd模块查找日期最多的列

hadoop - 在单个mapreduce程序中加入三个文件

java - MapReduce 作业的Reducer 中的奇怪行为

c# - Winforms 中数据绑定(bind)的两种方式