Hive 当前日期函数

Hive Current date function

我想在直线中获取当前日期。

我试过用这个:

FROM_UNIXTIME(UNIX_TIMESTAMP())

它输出这个:

16-03-21

我想要得到的东西:

2016-03-21 09:34

我该怎么做?我在这里看到直线文档: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunctions

但它对我不起作用。

试试这个:

 Select to_date(from_unixtime(unix_timestamp())) from my table ...

“2016-03-21”的结果

您可以通过将预期格式作为 from_unixtime 函数的参数传递来获取它。

示例:

select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:MM');

结果:

2016-03-2116:03

您可以在配置单元中使用许多函数:取自 http://atiblog.com/date-function-hive/

1)from_unixtime:

此函数将unix纪元(1970-01-01 00:00:00 UTC)的秒数转换为代表当前系统时区中那个时刻的TIMESTAMP的STRING,格式为“1970” -01-01 00:00:00”。以下示例 returns 当前日期包括时间。

hive> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP()); 好的
2015–05–18 05:43:37 耗时:0.153 秒,获取:1 行

2)from_utc_timestamp:- 此函数假定第一个表达式中的字符串是 UTC,然后将该字符串转换为第二个表达式的时区。此函数和 to_utc_timestamp 函数进行时区转换。在以下示例中,t1 是一个字符串。 hive> SELECT from_utc_timestamp(‘1970-01-01 07:00:00’, ‘JST’); 好的 1970–01–01 16:00:00 耗时:0.148 秒,获取:1 行

3)to_utc_timestamp: 此函数假定第一个表达式中的字符串位于第二个表达式中指定的时区内,然后将值转换为 UTC 格式。此函数和 from_utc_timestamp 函数进行时区转换。 hive> SELECT to_utc_timestamp (‘1970-01-01 00:00:00’,‘America/Denver’); 好的 1970–01–01 07:00:00 耗时:0.153 秒,获取:1 行

4)unix_timestamp : 此函数将日期转换为指定的日期格式和 returns 指定日期和 Unix 纪元之间的秒数。如果失败,那么它returns 0。下面的例子returns 的值是1237487400 hive> SELECT unix_timestamp (‘2009-03-20’, ‘yyyy-MM-dd’); 好的 1237487400 耗时:0.156 秒,获取:1 行

5)unix_timestamp() :此函数 returns 使用默认时区从 Unix 纪元 (1970-01-01 00:00:00 UTC) 算起的秒数。

hive> select UNIX_TIMESTAMP(‘2000-01-01 00:00:00’); 好的 946665000 耗时:0.147 秒,获取:1 行

6)unix_timestamp(字符串日期): 此函数将格式为“yyyy-MM-dd HH:mm:ss”的日期转换为 Unix 时间戳。这将 return 指定日期和 Unix 纪元之间的秒数。如果失败,则 returns 0。 hive> select UNIX_TIMESTAMP(‘2000-01-01 10:20:30’,‘yyyy-MM-dd’); 好的 946665000 耗时:0.148 秒,获取:1 行

7)unix_timestamp(字符串日期,字符串模式): 此函数将日期转换为指定的日期格式和 returns 指定日期和 Unix 纪元之间的秒数。如果失败,则 returns 0。 hive> select FROM_UNIXTIME( UNIX_TIMESTAMP() );

8)from_unixtime( bigint number_of_seconds [ string format] ) :FROM_UNIX函数将指定的秒数从Unix纪元转换为returns日期格式为“yyyy-MM-dd HH:mm:ss”。

hive> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());

9)To_Date(字符串时间戳):

hive> select TO_DATE(‘2000-01-01 10:20:30’); 好的 2000–01–01

10)WEEKOFYEAR(字符串日期) WEEKOFYEAR 函数 returns 日期的周数。 hive> SELECT WEEKOFYEAR(‘2000-03-01 10:20:30’); 好的 9

11)DATEDIFF(字符串日期1,字符串日期2) DATEDIFF 函数 returns 计算两个给定日期之间的天数。 hive> SELECT DATEDIFF(‘2000-03-01’, ‘2000-01-10’); 好的 51 耗时:0.156 秒,获取:1 行

12)DATE_ADD(字符串日期, 整数天数) DATE_ADD 函数将天数加到指定日期 hive> SELECT DATE_ADD(‘2000-03-01’, 5); 好的 2000–03–06

13)DATE_SUB(字符串日期,整数天数) DATE_SUB函数减去指定日期的天数 hive> SELECT DATE_SUB(‘2000-03-01’, 5); 好的 2000–02–25 14)日期转换:将 MMddyyyy 格式转换为 Unixtime

注意:MMddyyyy 格式每次都要大写

select cast(substring(from_unixtime(unix_timestamp(dt, ‘MMddyyyy’)),1,10) as date) from sample;