因此,我提取的文件具有两种不同开始时间格式的多个实例。一个开始时间为祖鲁(UTC)格式,另一个开始为标准dateTime格式。因此,当我创建一个SELECT时,它们都必须通过它。
我的UTC起始时间的示例是2011-01-02T00:03:04.123Z
标准startingTime的示例为2011-Jan-20 01:15:37.000941 EST
我需要某种dateTime.Parse可以同时处理它们,并以与第二个2011-Jan-20 01:15:37.000941 EST
相同的样式将其返回给我。
当前我正在使用DateTime.Parse(StartingTime).ToString("yyyy-MMM-dd HH:mm:ss.fff) As StartingTime"
这适用于解析UTC时间格式,但是在尝试解析其他格式时却给我一个错误。
有什么想法吗?
即使我不愿意像这样2011-Jan-20 01:15:37.000941 EST
一样回到我身边,我也会采取一些措施,显示出三毫秒的数字,例如:2011-Jan-20 01:15:37.941 EST
,这就是我的代码现在所做的
答案 0 :(得分:0)
如果只有这种约会,可以尝试一下。 您可以在IF语句上添加更多类型!
DECLARE @func Func<string,string> = (s) => {
DateTime d;
if (DateTime.TryParse(s, out d))
{
TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
d = DateTime.SpecifyKind(d, DateTimeKind.Unspecified);
DateTime cstTime = TimeZoneInfo.ConvertTime(d, cstZone, TimeZoneInfo.Utc);
return cstTime.ToString("yyyy-MMM-dd HH:mm:ss.ffffff EST");
}
return s;
};
@data =
SELECT data FROM
( VALUES
("2011-01-02T00:03:04.123Z")
,("2011-Jan-20 01:15:37.000941 EST")
) AS T(data);
@result =
SELECT @func(data) AS data FROM @data;
OUTPUT @result
TO "/test.txt"
USING Outputters.Tsv();