【发布时间】:2018-04-03 16:11:41
【问题描述】:
我正在尝试在以下 SQL 中输出日期格式
CASE
WHEN E.A_EXTTRNDTETME IS NOT NULL then LEFT(E.A_EXTTRNDTETME, 4)
+SUBSTRING(E.A_EXTTRNDTETME, 5, 2)+SUBSTRING(E.A_EXTTRNDTETME, 7, 2)
+'-'+SUBSTRING(E.A_EXTTRNDTETME, 9, 2)+':'+SUBSTRING(E.A_EXTTRNDTETME, 11, 2)
+':'+SUBSTRING(E.A_EXTTRNDTETME, 13,2)+'.'+SUBSTRING(E.A_EXTTRNDTETME, 15,3)
WHEN E.A_EXTTRNDTETME IS NULL then
(
SELECT TOP 1 A_EXTTRNDTETME FROM T_ATH_EXE
WHERE A_PAREXEID = E.A_EXEID ORDER BY A_ADDDTETME
)
ELSE ' text'
END as [TransactTime],
第二个 WHEN 语句返回 20180322141422883 但我希望它采用以下格式,就像第一个分支中的值一样:
20180322-14:14:22.883
但是不知道在SELECT语句里面怎么做,请帮忙。
【问题讨论】:
-
@Stefan 我不太同意,这里的主要问题是逻辑/评估顺序,而不是简单的格式化部分。
-
@Aaron 嗨,无论如何我可以像上面一行中那样包含格式。这个查询还有很多内容,而这只是其中的一小部分?
标签: sql-server-2012 case date-formatting