提问人:jbfdataguru 提问时间:7/22/2020 最后编辑:dbaltorjbfdataguru 更新时间:11/21/2023 访问量:1969
在大查询错误中将字符串转换为日期
Convert String to Date in Big Query error
问:
我有一个从表中提取的字符串字段,我正在尝试将其转换为我创建的视图中的日期。不过,在尝试将 Cast 作为日期时,我总是收到错误。该字段的格式如下所示:
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'
答:
0赞
Mikhail Berlyant
7/22/2020
#1
将字符串转换为日期
下面适用于 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
0赞
Davey Havok
11/15/2023
#2
如果您有问题 SQL Impala >>UDF ERROR: String to Date parse failed. Invalid string val: "20000000"
你有数据问题。尝试这样做,更改您的字段Date
IF(length(FieldDate)!=8 OR cast(substr(trim(FieldDate),5,4) as BIGINT)=0, NULL, CAST(trim(FieldDate) AS DATE FORMAT 'yyyymmdd')) as Out_FieldDate,
上一个:试验 Java 泛型
下一个:在大查询错误中将字符串转换为日期
评论