我在将varchar格式的日期列转换为presto-SQL中的日期格式时遇到问题.DATE_COLUMN的格式如下:‘9/5/2022’、‘12/23/2022’、‘%null%’等.

我try 了以下查询:

SELECT
DATE_PARSE(date_column, '%Y-%m-%d')
FROM table

SELECT
CAST(date_column AS DATE)
FROM table

并且总是弹出这样的错误:

原因:io.prestosql.jdbc.$internal.client.FailureInfo$FailureException:格式无效:"11/30/2022"在"/30/2022"中格式不正确

推荐答案

提供的格式(参见docs)表示由-分隔的年、月、日,而您的数据是由/分隔的月、日、年.相应地更改格式:

SELECT DATE_PARSE('11/30/2022', '%m/%d/%Y');

输出:

          _col0
-------------------------
 2022-11-30 00:00:00.000

请注意,像'%null%'这样的字符串(不仅仅是null个字符串)也是无效的.如果您真的有这些--您应该考虑将解析调用包装到try中.

Sql相关问答推荐

如何在presto/SQL中使用两个数组列创建(分解)单独的行

在SQL查询中使用COALESS

在SQL中为两个日期之间的每个日期添加行

根据Rails活动记录中时间戳/日期时间的时间部分从PostgreSQL中提取记录

基于是否具有某些数据的关联表覆盖SELECT语句中的列值

Oracle 23c ROUND,数据类型为DATE

ColdFusion+Docker:未安装SQLSERVER包

以一致的价值获得独特的价值

多条件SQL排序行为

使用SQL数据库中的现有列派生或修改几个列

插入具有预期逻辑的查询以Forking 表

如何在 golang squirrel lib 中添加 postgreSQL 的distinct on

将 jsonb 数组中的对象取消嵌套到单独的行中

具有多个表 JOINS 的 STRING_AGG 的替代方法 (SQL Server 2016)

如何使用最后一个非 NULL 值在 PostgreSQL 列中填充 NULL 值

PostgreSQL:通过数组的元素从另一个表中 Select 数据,然后按顺序显示

Postgres 条件求和函数

来自 SQL Server 的树层次 struct 图的 JSON

如何根据 Amazon Athena 中的多个列值删除重复行?

如何在 Trino/Presto 中过滤掉 map 中的某些键?