Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何连接定义为字符串数据类型且在bigquery中格式不同的日期列?_Sql_Date_Join_Google Bigquery_Between - Fatal编程技术网

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

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("%

我有两张桌子和两个平台。我正在尝试根据日期列连接这两个表。 但主表中的日期列格式为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("%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”是合适的