SQL:如果行包含过去的日期,则删除行

时间:2015-11-14 17:38:24

标签: sql sqlite

我有一个包含文本的SQLite表,但是一些文本行包含一个日期(MM/DDMM/DD/YY格式)是否有办法删除包含日期的所有行已经过去了? (对于MM/DD格式,我假设2015年为年。)

我不确定SQL是否可以捕获正则表达式然后将其与当前日期进行比较

1 个答案:

答案 0 :(得分:1)

嗯,这需要结合SQLite的几个方面。

delete t from t
    where (case when text glob '[0-9][0-9]/[0-9][0-9]/[0-9][0-9]'
                then replace(text, '/', '-')
                when text glob '[0-9][0-9]/[0-9][0-9]'
                then strftime(date('now'), '%Y') || '-' || substr(text, 1, 2) || '-' || substr(text, 4, 2)
           end) < strftime(date('now'), '%Y-%m-%d')