我是BQ的新手并且正在努力解决以下问题: 我想找出没有。两个时间戳之间的天数 以不同的格式输入。 例如:Date_Col1是2015/04/13 12:40:44.000和 Date_Col2输入为2015年4月30日17:35 我尝试使用日期更改格式(时间戳(2015年4月30日17:35))我每次都得到null。 BQ不允许我改变 Col2的日期格式与col1一起使用。另一个问题是Date_Col2输入时包含月份值的单位和双位数,因此无法使用concat或substring。有时col2也输入为null。 我猜空值可以用0代替。
我想知道是否有人在这个用例上工作过。
以下是以不同格式计算两个日期之间的工作日的示例。它适用于其他日期,但不适用于Vitals Date(具有不同格式的Date_col2)
(DATEDIFF(TIMESTAMP(hp.ARRIVAL_TIME_PAC_TZ),TIMESTAMP(Vitals_date))+ 1) - (INTEGER((DATEDIFF(TIMESTAMP(hp.ARRIVAL_TIME_PAC_TZ),(TIMESTAMP(Vitals_date)))+ 1)/ 7)* 2) - (DAYOFWEEK时(CASESTAMP(Vitals_date))= 1然后1 ELSE 0 END) - (例如DAYOFWEEK(TIMESTAMP(hp.ARRIVAL_TIME_PAC_TZ))= 7那么1 ELSE 0 END)作为AGING_GUTS_ARRIVAL_Vitals_date,
答案 0 :(得分:1)
要将col2转换为时间戳,您可以使用以下内容:
timestamp(concat(
regexp_extract(col2, r"\d+/\d+/(\d+)"), "/",
regexp_extract(col2, r"(\d+)/\d+/\d+"), "/",
regexp_extract(col2, r"\d+/(\d+)/\d+"),
regexp_extract(col2, r"\d+/\d+/\d+(.*)"), ":00"))
月份应该使用1或2位数