Я пытаюсь извлечь дату из подстроки текстового поля, которое включает число метаданных 'x', таких как название компании, валюта и т. Д. c, которые все вводятся в одно поле с идентификатором узла в качестве идентификатора, например
Имя столбца - атрибуты Значения выглядят следующим образом: Название компании27 / 04/2021 ... и т. Д.
Мне нужно только перетащить дату в поле A61, а затем добавить дату и добавить для всего, чья дата больше, но не превышает 3 месяцев с этой даты.
Это также объединено в отдельную таблицу, в которой содержится столбец «Имя файла», связанный с этой датой.
Это текущий неправильный код, который я использую, но очевидно, что мне нужно над этим поработать.
Любые предложения приветствуются!
SELECT DISTINCT n.Filename
, SUBSTRING ('<A61>', 6,5) + SUBSTRING ('<A61>', 11,5)AS ExpiryDate
FROM NODE n
JOIN NODEMETADATA m
ON n.MetaID = m.MetaID
WHERE SUBSTRING ('<A61>', 6,5) + SUBSTRING ('<A61>', 11,5) = DATEADD(MONTH, 3, GETDATE())
AND n.NODETYPE = 9
Нет ошибок сообщения, но результаты не содержат ничего в течение 3 месяцев, включая мой DATEADD, по-видимому, будет собирать только то, что ровно через 3 месяца.
Из-за этого я также не отвечаю Если DATEADD правильно работает с подстрокой и обрабатывает подстроку как объединенную дату.
SSMS 2008
Пример данных для указанных c Ячейка:
<A4>Company name</A4></A5><A61>27/04/2021</A61><A9>VAT</A9>...and so on