在 SQL 中格式化日期列

Format Date Column in USQL

我目前的日期格式如下: “2017 年 1 月 30 日 12:45:02:345 美国东部时间

但我需要格式为 "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();

你可以这样做:

@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

也许你的数据集中有空值,所以你可以这样做:

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

您可以 return 取而代之的是默认值(DateTime),取决于您想要什么。