首页 > 解决方案 > 将 DATEADD 添加到 SUBSTRING OF TEXT 以获取未来的日期

问题描述

我正在尝试从文本字段的子字符串中提取日期,该文本字段包含“x”个元数据,例如公司名称、货币等,这些元数据都输入到一个以 nodeID 作为标识符的字段,例如

列名 - 属性值如下所示:公司名称 27/04/2021... 等等。

我只需要在 A61 字段中提取日期,然后为日期大于但不大于自该日期起 3 个月的任何内容添加 dateadd。

这也加入了一个单独的表,该表包含一个链接到该日期的“文件名”列。

这是我正在使用的当前不正确的代码,但很明显我需要处理这个问题。

任何建议,将不胜感激! 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 个月内(​​包括 3 个月)内的任何内容,因为我的 DATEADD 似乎只会提取恰好 3 个月后的任何内容。

因此,我也不确定 DATEADD 是否正确处理子字符串并将子字符串视为组合日期。

SSMS 2008

特定单元格的样本数据:

<A4>Company name</A4></A5><A61>27/04/2021</A61><A9>VAT</A9>...and so on

标签: sqlsql-serversubstringdateadd

解决方案


推荐阅读