sql - 在databricks SQL中将字符串转换为日期
问题描述
我有一个表格,其中包含以下格式的文本列:
5/30/2021 9:35:18 AM
我正在尝试将其转换为,date(yyyy-MM-dd)
但是当我使用 cast 时得到空值,to_date
. 有什么办法可以得到上述yyyy-mm-dd
格式的数据吗?
解决方案
使用 Databricks 日期时间模式。根据 Databricks 网站上的 SparkSQL 文档,您可以使用特定于 Databricks 的日期时间模式在日期列之间进行转换。首先,您需要将文本列转换为日期列,如下所示:
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')
注意:根据您是否得到零填充天数、月数、小时数、分钟数和秒数,您需要调整上述命令。
推荐阅读
- python - 拆分以逗号分隔的列表中的不同值
- c++ - 找不到合适的复制构造函数
- zsh - 尝试设置提示以在 ZSH 中显示 PWD 的特定部分
- javascript - 如何在javascript中获取和存储控制台记录的值
- java - 使用 Selenium WebDriver、Chrome 和 macOS 访问地理位置
- html - VSCode 用光标在起始元素上包装 HTML
- machine-learning - 如何解决尺寸误差并有效使用Conv2dTranspose?
- javascript - Python http.server 没有响应客户端
- bigchaindb - BgiichainDB:不变性检查
- php - 我如何获得 laravel 多对多关系