Sql 如何连接定义为字符串数据类型且在bigquery中格式不同的日期列?
我有两张桌子和两个平台。我正在尝试根据日期列连接这两个表。 但主表中的日期列格式为YYYY-MM-DD,数据类型为字符串, 平台表中的日期列格式为MM/DD/YY,数据类型为字符串 我尝试的联接条件是Platforms.StartDate和Platforms.EndDate之间的Master.Date 我曾尝试解析这些列并将其转换为date,但没有生成任何记录Sql 如何连接定义为字符串数据类型且在bigquery中格式不同的日期列?,sql,date,join,google-bigquery,between,Sql,Date,Join,Google Bigquery,Between,我有两张桌子和两个平台。我正在尝试根据日期列连接这两个表。 但主表中的日期列格式为YYYY-MM-DD,数据类型为字符串, 平台表中的日期列格式为MM/DD/YY,数据类型为字符串 我尝试的联接条件是Platforms.StartDate和Platforms.EndDate之间的Master.Date 我曾尝试解析这些列并将其转换为date,但没有生成任何记录 SAFE.PARSE_DATE("%Y-%m-%d", Master.Date) BETWEEN SAFE.PARSE_DATE("%
SAFE.PARSE_DATE("%Y-%m-%d", Master.Date) BETWEEN
SAFE.PARSE_DATE("%m/%d/%Y",Platforms.StartDate) AND SAFE.PARSE_DATE("%m/%d/%Y",Platforms.EndDate)
我应该添加什么来比较这些列
Query:
select * from Master, Platforms
where
SAFE.PARSE_DATE("%Y-%m-%d", Master.Date) BETWEEN
SAFE.PARSE_DATE("%m/%d/%Y",Platforms.StartDate) AND SAFE.PARSE_DATE("%m/%d/%Y",Platforms.EndDate)
Master Table Ex:
Name Date ID
Alex 2019-01-25 1
David 2019-02-25 2
Seth 2019-03-25 3
Peter 2019-04-25 4
Taylor 2019-05-25 5
Platform Table Ex:
Type StartDate EndDate
Abc 01/05/19 01/31/19
Def 02/25/19 03/31/19
Ghi 05/01/19 05/24/19
klm 05/01/19 05/25/19
Expected O/P:
Name Date ID Type StartDate EndDate
Alex 2019-01-25 1 Abc 01/05/19 01/31/19
David 2019-02-25 2 Def 02/25/19 03/31/19
Taylor 2019-05-25 5 klm 05/01/19 05/25/19
请尝试“%y”小写:
where SAFE.PARSE_DATE("%Y-%m-%d", Master.Date) BETWEEN
SAFE.PARSE_DATE('%m/%d/%y', Platforms.StartDate) AND
SAFE.PARSE_DATE('%m/%d/%y', Platforms.EndDate)
格式规范中的“%Y”将年份视为四位数的年份。所以,19->0019。您可能想要2019年,这就是为什么“%y”是合适的