我有一个包含日期值的列(varchar),我需要找到那些在接下来的30天内到期的日期。
ExpiringDate =================== 20171208, 20171215,samples 20171130,tested N/A No (empty row)
所以,首先我需要在逗号之前获取值。在结果集上,我需要过滤掉只有数字的行(没有' N / A'或' No'或空行)&然后我需要过滤那些在接下来的30天内到期的日期。
我试过以下&结果集似乎不合适
SELECT
DocName,
CategoryName,
AttributeName,
CAST(SUBSTRING_INDEX(AttributeValue, ',', 1) AS DATE) AS ExpiredDate
FROM myDB
WHERE (AttributeName = 'Date of last vessel OVID' OR AttributeName = 'Next Statutory docking' OR
AttributeName = 'Last statutory docking') AND AttributeValue LIKE '%[^0-9]%' AND
DATEDIFF(now(), AttributeValue) <= 30;