在 Azure Databricks 中将字符串转换为日期时间字段

Convert String to Date Time Filed in Azure Data Bricks

我有以下代表应用程序日期时间的文本字符串。

2021-11-2207:28:47下午

我需要将其转换为日期时间以执行 DATE ADD 操作。

我尝试了很多方法都没有成功,它在 Azure Data Bricks 中给了我 null。

select '2021-11-22 07:28:47 PM' as DateTime_String, 
    to_date('2021-11-22 07:28:47 PM', 'yyyy-M-dd HH:mm:ss:SS a') as Attempt_1  , 
    date_format(date ('2021-11-22 07:28:47 PM'), "yyyy-MM-dd HH:mm:ss:SS a") as Attempt_2,
    to_timestamp('2021-11-22 07:28:47 PM', 'yyyy-MM-dd HH:mm:ss.SSS a') as Attempt_3,
     to_timestamp('2021-11-22 07:28:47 PM', 'yyyy-MM-dd HH:mm:ss ') as Attempt_4

您可以使用以下方法来满足您的要求。

  1. 将您的 字符串 转换为 unix 时间戳(以秒为单位)
  2. 根据 unix 时间戳创建所需格式的日期时间列。

代码和输出如下:

select '2021-11-22 07:28:47 PM' as DateTime_String,unix_timestamp('2021-11-22 07:28:47 PM', 'yyyy-MM-dd hh:mm:ss aa') as unixtimestamp_value, from_unixtime(unix_timestamp('2021-11-22 07:28:47 PM', 'yyyy-MM-dd hh:mm:ss aa'),'yyyy-MM-dd HH:mm:ss')  as desired_format