从注释字符串中提取日期

Extract Date from a comment string

提问人:GreyFox9881 提问时间:11/16/2023 最后编辑:decezeGreyFox9881 更新时间:11/16/2023 访问量:31

问:

问候 SQL 社区,

我想知道从以下字符串结构中提取日期和年份的最佳方法是什么:

示例:01/01/2023:这是长度可能有所不同的评论

我正在尝试从“:”中提取所有内容,这将是日期,而 yyyy 将是年份 (2023)

我尝试使用以下语法:YEAR(CAST(CAST(LEFT(CD.Comments,10) AS DATE) AS varchar)) = ('2023') 提取返回错误 Conversion failed when converting date and/or time from string string.

SQL-Server 字符串 日期 转换 提取

评论

0赞 Tim Roberts 11/16/2023
您使用的是哪种 SQL?标准日期格式为 YYYY/MM/DD。
0赞 GreyFox9881 11/16/2023
你好蒂姆,我正在使用 SQL Server 2014....我尝试从中提取的列设置为 varchar(512)
1赞 Squirrel 11/16/2023
你的日期总是采用这种格式吗?它是在还是?01/01/2023mm/dd/yyyydd/mm/yyyy
0赞 T N 11/18/2023
如果您真的只想提取年份并且日期格式是固定的(使用零填充的日和月值),也许您只需要 .(可选)转换为(如果您愿意),和/或使用条件或有需要进行预验证。SUBSTRING(CD.Comments, 7,4) = '2023'INTLEN(CD.Comments) >= 10CD.Comments LIKE '[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]:%'

答:

0赞 Tim Roberts 11/16/2023 #1

而不是 , do .MM/DD/YYYY 格式为格式编号 101。CAST(...) AS DATECONVERT(DATETIME,LEFT(CD.Comments,10),101)

https://www.w3schools.com/sql/func_sqlserver_convert.asp