用于检索两个字符之间的日期的子字符串
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)
有人可以阐明我如何从下面的字符串中提取日期字段吗
'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)