在数据块 SQL 中将字符串转换为日期

问题描述

我有一个包含以下格式文本列的表格:

5/30/2021 9:35:18 AM

我正在尝试将其转换为 date(yyyy-MM-dd),但是当我使用强制转换 to_date 时我得到了空值。 有没有办法以yyyy-mm-dd格式获取上述数据?

解决方法

使用 Databricks 日期时间模式。根据 Databricks 网站上的 SparkSQL 文档,您可以使用特定于 Databricks 的 datetime patterns 来转换日期列。首先,您需要将文本列转换为日期列,如下所示:

to_date('5/30/2021 9:35:18 AM','M/d/y h:m:s a')

M - 月,d - 月中的某天,y - 年,h - 一天中的小时(12 小时),m - 小时中的分钟,s - 分钟中的秒,a - AM/PM

将列转换为日期后,您可以轻松使用相同的日期时间模式将其转换回特定格式。使用以下命令将其转换为所需格式:

date_format(date to_date('5/30/2021 9:35:18 AM','M/d/y h:m:s a'),'yyyy/MM/dd')

注意:根据您是否获得零填充的天数、月数、小时数、分钟数和秒数,您需要调整上述命令。