sql - 将 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
解决方案
推荐阅读
- javascript - Javascript函数返回“无法读取未定义的属性长度”
- java - 这个“1342177280”标志是干什么用的?
- django - 主应用程序中不存在模板
- c# - 在 EntityframeworkCore 中使用 async/await 的最佳方式
- javascript - 不知道为什么我的登录不与之前的注册结合使用
- eclipse - Micronaut:如何在 Eclipse 中为 JUnit 配置 Micronaut 注释处理器
- node.js - 无法通过 CLI 部署 Azure Functions
- python - 尽管我引用了它,但在赋值之前引用了变量事件
- python - 使用 BeautifulSoup 的 HTML 页面中的子字符串计数
- java - JAVA :- 在 Linux 中不工作的多个 Java 应用程序之间的文件共享和锁定