首页 > 解决方案 > Azure 数据块 - 转换为日期以进行排序

问题描述

我必须构造一个字符串,该字符串具有毫秒成分作为提取数据的源,不允许日期字段包含毫秒成分。然而不是问题..

询问

   select POWERAPPCAPTURETIME, POWERAPPSECONDS,POWERAPPMILLISECONDS,
  
   replace(
        concat_ws(':', 
            regexp_replace(date_format(POWERAPPCAPTURETIME, 'dd/M/yyyy HH:mm'), '[a-z]', ''), CaSe when POWERAPPSECONDS='0' then '00' else POWERAPPSECONDS end, case when POWERAPPMILLISECONDS='0' then '000' else POWERAPPMILLISECONDS end
        ), 
        '.', ':'
    ) as DATE_TIME_WITH_MILLISECONDS_STRING,
  
  
  to_date (
   replace(
        concat_ws(':', 
            regexp_replace(date_format(POWERAPPCAPTURETIME, 'dd/M/yyyy HH:mm'), '[a-z]', ''), CaSe when POWERAPPSECONDS='0' then '00' else POWERAPPSECONDS end, case when POWERAPPMILLISECONDS='0' then '000' else POWERAPPMILLISECONDS end
        ), 
        '.', ':'
    ) , "dd/M/yyyy HH:mm:ss:sss" ) as DATE_TIME_WITH_MILLISECONDS_TIMESTAMP from Table1

问题是我无法使用字段的 STRING 版本在 Azure Data Bricks Sql Analaytics 中订购记录。我需要将其更改为时间戳数据类型才能执行此操作,但似乎无法正确使用语法。这是我的查询目前给我的:

在此处输入图像描述

标签: sqlazure-databricks

解决方案


现在让它工作。语法问题 POWERAPPCAPTURETIME,'dd/M/yyyy HH:mm'。然后,这适用于使用该列进行分区和排序。


推荐阅读