在BigQuery中格式化日期字段:移除时间部分的实现问题
BigQuery提取日期字段中的日期部分解决方案
以下是几种可行的解决方法,根据你的字段类型选择即可:
推荐:使用DATE()函数(适配时间类型字段)
如果你的Start Date和End Date是TIMESTAMP或DATETIME类型,直接用DATE()函数就能提取日期部分:SELECT DATE(`Start Date`) AS `Start Date`, DATE(`End Date`) AS `End Date` FROM 你的表名;如果字段是STRING类型,先转成TIMESTAMP再处理:
SELECT DATE(TIMESTAMP(`Start Date`)) AS `Start Date`, DATE(TIMESTAMP(`End Date`)) AS `End Date` FROM 你的表名;简单直接:LEFT()字符串截取
因为日期部分固定是前10位,不管字段类型是啥,转成字符串后截取前10位就行:SELECT LEFT(CAST(`Start Date` AS STRING), 10) AS `Start Date`, LEFT(CAST(`End Date` AS STRING), 10) AS `End Date` FROM 你的表名;修正正则替换:REGEXP_REPLACE正确用法
如果你坚持用正则,之前没成功大概率是正则表达式写错了,试试这个写法,把T及后面的所有内容替换为空:SELECT REGEXP_REPLACE(`Start Date`, r'T.*', '') AS `Start Date`, REGEXP_REPLACE(`End Date`, r'T.*', '') AS `End Date` FROM 你的表名;
内容的提问来源于stack exchange,提问作者Andres Sebastian Martinez
相关产品推荐
相关产品推荐

