我需要能够从SQL中的字符串中提取日期。我有一个可以使用特定格式的解决方案,但是格式可能会略有不同,因此我需要调整模式以支持各种格式。
这是我目前拥有的:
DECLARE @Subject NVARCHAR(MAX) = 'Some example text- 09/30/18 and more text 1622'
SELECT
ISNULL(
TRY_CAST(SUBSTRING(@Subject, PATINDEX('%[0-9][0-9]/[0-9][0-9]/[0-9][0-9]%', @Subject), 8) AS DATETIME),
DATEADD(dd, -1, DATEADD(qq, DATEDIFF(qq, 0, GETDATE()), 0))) AS SomeDate
当日期为09/30/18时此方法有效,但当日期为9/30 / 18、09 / 2/18和09/30/2018时无效。
是否存在能够支持这些变化的已知模式?