我有一个从表中提取的字符串字段,我试图将其转换为我创建的视图中的日期。不过,当我尝试将其投射为日期时,我不断收到错误消息。该字段的格式如下所示:
2020 年 7 月 19 日或 2020 年 8 月 8 日等..
我收到一条错误消息
“无法解析输入字符串“2020 年 7 月 19 日”
或尝试使用 DATE_Parse 时数据中的其他日期之一。或者我明白
“无效日期:2020年8月8日”
如果我尝试使用 CAST 函数。
下面是我尝试投射日期时的查询:
select
noteattributes.value.name as name_type, noteattributes.value.value as name_value, CAST(noteattributes.value.value as DATE) as DATE_TEST, order_number
from test.orders,
unnest(note_attributes) as noteattributes
where noteattributes.value.name = 'Pickup-Date'
将字符串转换为日期
以下适用于 BigQuery 标准 SQL
您应该使用 PARSE_DATE 而不是 CAST,如下例所示
PARSE_DATE('%B %d, %Y', date_as_string)
您可以使用下面的示例来测试、玩玩这个
#standardSQL
WITH `project.dataset.table` AS (
SELECT 'July 19, 2020' date_as_string UNION ALL
SELECT 'August 8, 2020'
)
SELECT PARSE_DATE('%B %d, %Y', date_as_string) AS date_as_date
FROM `project.dataset.table`
有输出
Row date_as_date
1 2020-07-19
2 2020-08-08
如果您有问题 sql impala >> UDF 错误:字符串到日期解析失败。无效的字符串值:“20000000”
您的数据中有错误。尝试这样做。只需更改您的字段日期
IF(length(FieldDate)!=8 ORcast(substr(trim(FieldDate),5,4) as BIGINT)=0, NULL, CAST(trim(FieldDate) AS DATE FORMAT 'yyyymmdd')) as Out_FieldDate,