用于检索两个字符之间的日期的子字符串

substring to retrieve a date between two characters

有人可以阐明我如何从下面的字符串中提取日期字段吗

'NA,Planning-Completed=17-07-2019 10:38,Print-Dispatch-Date=10-02-2020 13:06,Award-Complete=NA'

预期输出:

10-02-2020

这是我到目前为止所写的内容,它有时似乎可以工作,但我注意到有些行不正确。

[Dispatch Date] = SUBSTRING(dates,CHARINDEX('Print-Dispatch-Date=',dates) + LEN('Print-Dispatch-Date='), LEN(dates) )

SUBSTRING 的第 3 个参数错误。你把它写成 LEN(dates),这意味着 return 每个字符 after 'Print-Dispatch-Date=';在这种情况下 returns '10-02-2020 13:06,Award-Complete=NA'.

因为你的日期是 10 个字符长,只需使用 10:

SELECT dates, SUBSTRING(dates,CHARINDEX('Print-Dispatch-Date=',dates) + LEN('Print-Dispatch-Date='), 10)
FROM (VALUES('NA,Planning-Completed=17-07-2019 10:38,Print-Dispatch-Date=10-02-2020 13:06,Award-Complete=NA'))V(dates)