使用 SQL,是否有一种优雅的方法可以在日期之后删除“th”、“rd”和“st”?这就是我的做法,但我宁愿做一些类似正则表达式回忆的事情(下面的例子)。
请不要使用带有 while 循环的函数。我已经看到了这些解决方案,我正在寻找不那么难看的东西。
select Replace('september 8th, 2016', Substring('september 8th, 2016', PatIndex('%[a-z,A-Z][a-z,A-Z],%', 'september 8th, 2016'), 2), '') statdate2
如果使用召回我可以做类似下面的事情
/(\s[0-9]+)[a-z,A-Z]{2}\,/
并回忆替换的日期编号是什么
$1,
正如我在 sql 示例中的模式一样,可能会引入任意两个字符,后跟逗号,这在 99% 的情况下都很好,但会错误地匹配一些不需要的日期错误格式,用户在月后放置逗号。