【发布时间】:2021-06-15 09:22:09
【问题描述】:
我必须构造一个字符串,该字符串具有毫秒成分作为提取数据的源,不允许日期字段包含毫秒成分。但不是问题..
查询
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 中对记录进行排序。我需要将其更改为时间戳数据类型才能执行此操作,但似乎无法正确使用语法。这是我的查询目前给我的:
【问题讨论】:
-
您是否尝试在查询中添加
order by子句? -
现在可以使用了。语法问题 POWERAPPCAPTURETIME,'dd/M/yyyy HH:mm'。然后,这适用于使用该列进行分区和排序。
标签: sql azure-databricks