在USQL中格式化日期列

时间:2018-08-09 18:35:54

标签: u-sql

我目前具有以下日期格式: “ 2017年1月30日12:45:02:345 EST”

但是我需要将格式设置为“ MM / dd / yyyy HH:mm:ss”

有人知道该怎么做吗?问题出在下面的日期字符串中

@input= 
   EXTRACT
     Date string,
     Name string,
     Location string
   FROM @in
   USING Extractor.Csv();

OUTPUT @input
TO @out
USING Outputters.Csv();

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

@input=EXTRACT
[Date] String,
[Name] string,
[Location] string
FROM @in
USING Extractors.Csv();

,然后在SELECT语句中设置日期列的格式:

@result = SELECT 
DateTime.ParseExact([Date],"yyyy-MMM-dd hh:mm:ss:fff EST",null).ToString("MM/dd/yyyy HH:mm:ss") AS Date
Location,
Name
FROM @input

有关c#中的更多DateTime格式,您可以检查this

答案 1 :(得分:0)

数据集中可能存在空值,因此您可以执行以下操作:

string.IsNullOrEmpty([Date]) ? null : DateTime.ParseExact(Date, "yyyy-MMM-dd HH:mm:ss:fff EST", null).ToString("MM/dd/yyyy HH:mm:ss") AS Date

取而代之的是null,您可以返回默认值(DateTime),具体取决于您想要的内容。