gpt4 book ai didi

linux - 从 shell 脚本传递日期到查询

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:38 26 4
gpt4 key购买 nike

下面是我运行 Hive 查询的 shell 脚本。在这里,我正在计算昨天的日期,并在 where 子句中传递昨天的日期。但该查询对我不起作用。

#!/bin/bash
DATE_YEST=`TZ=GMT+48 date +%Y%m%d`
echo $DATE_YEST
hive -S -e 'SELECT * FROM PDS_ATTRIBUTE_DATA_REALTIME WHERE dt=$DATE_YEST'

我正在像这样运行上面的脚本-

sh -x test.sh

我在 where 子句中传递 DATE_YEST 日期 的方式有问题吗?

最佳答案

试试这个:

#!/bin/bash
DATE_YEST=`TZ=GMT+48 date +%Y%m%d`
echo $DATE_YEST
echo "SELECT * FROM PDS_ATTRIBUTE_DATA_REALTIME WHERE dt=$DATE_YEST"

输出将是:

20120806
SELECT * FROM PDS_ATTRIBUTE_DATA_REALTIME WHERE dt=20120806

如果您需要选择周围的引号,请使用:

#!/bin/bash
DATE_YEST=`TZ=GMT+48 date +%Y%m%d`
echo $DATE_YEST
echo "\"SELECT * FROM PDS_ATTRIBUTE_DATA_REALTIME WHERE dt=$DATE_YEST\""

输出将是:

20120806
"SELECT * FROM PDS_ATTRIBUTE_DATA_REALTIME WHERE dt=20120806"

假设您想要引号,您的脚本将如下所示:

#!/bin/bash
DATE_YEST=`TZ=GMT+48 date +%Y%m%d`
echo $DATE_YEST
hive -S -e "\"SELECT * FROM PDS_ATTRIBUTE_DATA_REALTIME WHERE dt=$DATE_YEST\""

关于linux - 从 shell 脚本传递日期到查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11855356/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com