在 Azure Analytics 作业中格式化日期时间
Formatting a Datetime in an Azure Analytics job
我需要将时间戳作为一列插入到 Azure Table 中,格式为 yyyy-MM-dd-HH-mm
在普通的 T-SQL 中,我会做类似的事情:
SELECT FORMAT( GETDATE(), 'yyyy-MM-dd-HH-mm' ) AS 'PK'
我认为 CONCAT 和 DATENAME/DATEPART 函数会帮助我,我最终得到了这个,但它没有产生我需要的输出:
CONCAT(DATENAME(yyyy,System.Timestamp),'-',CAST(DATEPART(mm,System.Timestamp) AS NVARCHAR(MAX)),'-',DATENAME(dd,System.Timestamp),'-',CAST(DATEPART(hh,System.Timestamp) AS NVARCHAR(MAX)),'-',DATENAME(mi,System.Timestamp))
2015-10-12T05:17:37.807Z
的格式类似于 2015-10-12-5-17
,我期待 2015-10-12-17-17
提前致谢
我不确定我是否理解问题。 datepart(hh,'2015-10-12T05:17:37.807Z') = 5 是正确的行为,现在是五点钟。你为什么期待17?
datepart(hh) returns 24 小时格式的小时。下面的查询演示了 24 小时格式的行为
select
DATENAME(hh,'2015-10-12T05:17:37.807Z') HourFive,
DATENAME(hh,'2015-10-12T17:17:37.807Z') HourSeventeen
from
foo
输出
5 17
您可以执行如下操作以始终获得两位数。目前还没有简化此类操作的功能。
with T1 as
(
select
datepart(hh,'2015-10-12T05:17:37.807Z') [Hour]
from
foo
)
select
case when [Hour] <10 then concat('0',cast([Hour] as nvarchar(max))) else cast([Hour] as nvarchar(max)) end [Hour]
from
T1
我需要将时间戳作为一列插入到 Azure Table 中,格式为 yyyy-MM-dd-HH-mm
在普通的 T-SQL 中,我会做类似的事情:
SELECT FORMAT( GETDATE(), 'yyyy-MM-dd-HH-mm' ) AS 'PK'
我认为 CONCAT 和 DATENAME/DATEPART 函数会帮助我,我最终得到了这个,但它没有产生我需要的输出:
CONCAT(DATENAME(yyyy,System.Timestamp),'-',CAST(DATEPART(mm,System.Timestamp) AS NVARCHAR(MAX)),'-',DATENAME(dd,System.Timestamp),'-',CAST(DATEPART(hh,System.Timestamp) AS NVARCHAR(MAX)),'-',DATENAME(mi,System.Timestamp))
2015-10-12T05:17:37.807Z
的格式类似于 2015-10-12-5-17
,我期待 2015-10-12-17-17
提前致谢
我不确定我是否理解问题。 datepart(hh,'2015-10-12T05:17:37.807Z') = 5 是正确的行为,现在是五点钟。你为什么期待17? datepart(hh) returns 24 小时格式的小时。下面的查询演示了 24 小时格式的行为
select
DATENAME(hh,'2015-10-12T05:17:37.807Z') HourFive,
DATENAME(hh,'2015-10-12T17:17:37.807Z') HourSeventeen
from
foo
输出
5 17
您可以执行如下操作以始终获得两位数。目前还没有简化此类操作的功能。
with T1 as
(
select
datepart(hh,'2015-10-12T05:17:37.807Z') [Hour]
from
foo
)
select
case when [Hour] <10 then concat('0',cast([Hour] as nvarchar(max))) else cast([Hour] as nvarchar(max)) end [Hour]
from
T1