0

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

2021-11-22 下午 7: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

最近尝试的屏幕截图

4

1 回答 1

1

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

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

代码和输出如下:

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

在此处输入图像描述

于 2021-11-23T05:36:28.093 回答