Google bigquery 带有字符串输入的日期\加载项Bigquery:
我试图使用字符串输入来比较日期范围和日期添加,但它不起作用Google bigquery 带有字符串输入的日期\加载项Bigquery:,google-bigquery,dateadd,Google Bigquery,Dateadd,我试图使用字符串输入来比较日期范围和日期添加,但它不起作用 选择案例 当cast('2020-01-10'作为日期)>cast('2010-01-09'作为日期)和cast('2020-01-10'作为日期)和cast('2020-01-09'作为日期)如评论所述,请明确您使用的日期 P>为了缓解混乱(并反映你在实际生活中如何实际使用你的语句),考虑在CTE /表中“参数化”你的日期。这将使您的评估声明更容易阅读,您只需定义一次日期 with data as ( select cast('
当cast('2020-01-10'作为日期)>cast('2010-01-09'作为日期)和cast('2020-01-10'作为日期)和cast('2020-01-09'作为日期)如评论所述,请明确您使用的日期 <> P>为了缓解混乱(并反映你在实际生活中如何实际使用你的语句),考虑在CTE /表中“参数化”你的日期。这将使您的评估声明更容易阅读,您只需定义一次日期
with data as (
select cast('2020-01-10' as date) as test_date,cast('2010-01-09' as date) as begin_date
)
select test_date between begin_date and date_add(test_date, interval 7 day) as is_in_inverval
from data
这也可能是多余的,因为如果间隔为正值,
test\u date
将始终小于date\u add()
的结果。查看您的查询后,我意识到您的问题它与您在评估时提供的日期有关
在此之前,我想指出,如果您需要有关DATE\u ADD方法的支持,您可以阅读更多内容以及其他有用的方法
关于你的第一个问题,我将其分为两部分:
I)
此项的输出为“更大”,因此满足条件
II)
选择
案例
当CAST(“2020-01-10”作为日期)时,我的意思是说查询2正在重新生成您的查询是正确的,请注意日期CAST(“2020-01-10”作为日期),您使用的是2020而不是2010。
SELECT
CASE
WHEN CAST('2020-01-10' AS date) > CAST('2010-01-09' AS DATE) then 'greater'
ELSE
'none of the options'
END
val;
SELECT
CASE
when CAST('2020-01-10' AS date)<= DATE_ADD(CAST('2010-01-09' AS DATE), INTERVAL 7 DAY ) THEN 'less or equal'
ELSE
'none of the options'
END
val;