1. 程式人生 > 實用技巧 >Hive--內建函式-日期函式

Hive--內建函式-日期函式

[root@centos00 ~]$ cd /opt/cdh5.14.2/hadoop-2.6.0-cdh5.14.2/
[root@centos00 hadoop-2.6.0-cdh5.14.2]$ sbin/hadoop-daemon.sh start namenode
[root@centos00 hadoop-2.6.0-cdh5.14.2]$ sbin/hadoop-daemon.sh start datanode
       
[root@centos00 ~]$ cd /opt/cdh5.14.2/hive-1.1.0-cdh5.14.2/
[root@centos00 hive-1.1.0-cdh5.14.2]$ bin/hive --service metastore &
[root@centos00 hive-1.1.0-cdh5.14.2]# bin/hive

// 獲取當前時間戳
hive (default)> SELECT current_timestamp;
_c0
2020-08-17 23:02:58.793

hive (default)> SELECT current_timestamp();
_c0
2020-08-17 23:03:37.85

hive (default)> SELECT unix_timestamp();
_c0
1597673126

// 獲取當前時間
hive (default)> SELECT FROM_unixtime(unix_timestamp(), 'yyyy-MM-dd HH:mm:ss');
_c0
2020-08-17 23:04:59

// 獲取當前日期
hive (default)> SELECT SUBSTR(FROM_UNIXTIME(UNIX_TIMESTAMP()),1,10);
_c0
2020-08-17

// 獲取結束日期減去開始日期的天數
hive (default)> SELECT DATEDIFF('2020-08-17','2020-08-16');
_c0
1
// 獲取開始日期減去10天后的日期
hive (default)> SELECT DATE_SUB('2020-08-17',10);
_c0
2020-08-07

// 查詢最近30天的記錄
hive (default)> SELECT * FROM log;
log.date	log.pv
2020-08-16	100
2020-08-10	160
2020-08-08	90
2020-08-01	140
2020-07-16	200
2020-07-01	150

hive (default)> SELECT * FROM log WHERE DATEDIFF(current_timestamp,date) <= 30;
log.date	log.pv
2020-08-16	100
2020-08-10	160
2020-08-08	90
2020-08-01	140