如何在Hive SQL中选择当前日期

Eli*_*ela 60 hive hiveql

我们如何在Hive中获取当前系统日期?在MySQL中我们选择now(),任何人都可以帮我获取查询结果.我对Hive很新,是否有适当的Hive文档,它提供了有关伪列和内置函数的详细信息.

Luk*_*eer 82

根据LanguageManual,您可以使用unix_timestamp()"使用默认时区"获取"当前时间戳".如果您需要将其转换为更易于阅读的内容,您可以使用from_unixtime(unix_timestamp()).

希望有所帮助.

  • 谢谢Lukas,作品完美,应该被选为正确的答案. (3认同)

小智 44

是的...我正在使用Hue 3.7.0 - Hadoop UI并获取我们可以在Hive中的命令下使用的当前日期/时间信息:

SELECT from_unixtime(unix_timestamp()); --/Selecting Current Time stamp/

SELECT CURRENT_DATE; --/Selecting Current Date/

SELECT CURRENT_TIMESTAMP; --/Selecting Current Time stamp/
Run Code Online (Sandbox Code Playgroud)

但是,在Impala中,您会发现只有以下命令才能获取日期/时间详细信息:

SELECT from_unixtime(unix_timestamp()); --/Selecting Current Timestamp /
Run Code Online (Sandbox Code Playgroud)

希望它能解决你的疑问:)


小智 18

功能current_datecurrent_timestamp现在在蜂房1.2.0或更高版本,这使得代码变得更干净可用.

  • Cloudera 发行版中的 Hive 1.2 不包含函数 current_date。但是它包含函数 unix_timestamp() (2认同)
  • 清洁和[更快](https://issues.apache.org/jira/browse/HIVE-9988). (2认同)

Adi*_*tya 17

要仅提取不包括时间戳的当前日期:

在较低版本中,看起来像hive CURRENT_DATE不可用,因此你可以使用(它在Hive 0.14上为我工作)

select TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP()));
Run Code Online (Sandbox Code Playgroud)

在更高版本中说hive 2.0,你可以使用:

select CURRENT_DATE;
Run Code Online (Sandbox Code Playgroud)


小智 8

从当前日期提取年份

SELECT YEAR(CURRENT_DATE())
Run Code Online (Sandbox Code Playgroud)

IBM Netezza

extract(year from now())
Run Code Online (Sandbox Code Playgroud)

蜂巢

SELECT YEAR(CURRENT_DATE())
Run Code Online (Sandbox Code Playgroud)

  • 自 2013 年以来有什么变化吗?你现在用什么版本?指定是否有更改。 (2认同)

小智 7

select from_unixtime(unix_timestamp(current_date, 'yyyyMMdd'),'yyyy-MM-dd');
Run Code Online (Sandbox Code Playgroud)

current_date - 当前日期

yyyyMMdd - 我的系统当前日期格式;

yyyy-MM-dd - 如果您希望将格式更改为差异格式。