如何连接定义为字符串数据类型且在 bigquery 中采用不同格式的日期列?

how to join date columns defined as string data type and are in different formats in bigquery?

我有两个 tables Master 和 Platforms。我正在尝试根据日期列加入两个 table。 但是Master table中的Date列格式为YYYY-MM-DD,数据类型为String, 平台 table 中的日期列的格式为 MM/DD/YY,数据类型为字符串。

我正在尝试的连接条件是 Master.Date BETWEEN Platforms.StartDate 和 Platforms.EndDate

我已尝试解析列并将其转换为日期,但没有生成任何记录。

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' 合适的原因。