从Hive中的current_timestamp()减去天

时间:2018-07-30 17:35:40

标签: apache hive hiveql

我想获取的时间戳恰好是Hive中当前时间戳的10天。我可以使用hive中的current_timestamp()函数获取当前时间戳(我不想在这里使用unix_timestamp(),因为在最新版本的hive中已弃用了它)。 那么,如何获取当前时间戳之前10天的时间戳?有没有类似add_days的功能?

2 个答案:

答案 0 :(得分:2)

Sourcedef my_copy(source, dest): for attempts in [1, 2]: try: os.path.symlink(source, dest) # we succeeded, so don't try any more break except: # check for permission problem: if attempts == 1: # use dialog to ask for password # repeat the symlink procedure with password else: # we already tried as root, and failed again break ,减去迄今为止的天数

date_sub(date/timestamp/string startdate, tinyint/smallint/int days)

格式化为“ date_sub(current_timestamp(), 10)

yyyy-MM-dd HH:mm:ss.SSS

或者,您也可以使用date_format(date_sub(current_timestamp(), 10),'yyyy-MM-dd HH:mm:ss.SSS') ,添加迄今为止的天数

date_add(date/timestamp/string startdate, tinyint/smallint/int days)

答案 1 :(得分:2)

WEBROOT="/var/www/websites" BAKPATH="/var/backup" for vhost in "$WEBROOT"/*; do test -d "$vhost" || continue if [[ $vhost = *"website1.com"* || $vhost = *"website2.co.uk"* ]]; then continue fi base=$(basename "$vhost") ( cd "$WEBROOT" && tar -cpzf "$BAKPATH/$(date +%F)_$base.tar.gz" "$base" ) done 转换为unix时间戳,并减去10天= 10 * 86400秒。然后使用current_timestamp获取时间戳字符串。

from_unixtime

请注意,unix_timestamp() is being deprecated but not unix_timestamp(string date)