Firebird SQL 测试字符串是否在 WHERE 子句中包含 DATE



有没有办法测试字符串是否包含像 31.12.2018 这样的日期?

喜欢

SELECT date_string FROM table where date_string LIKE '%.*.*%'

还是类似的东西?

您可以尝试使用 SQL 正则表达式的SIMILAR TO比较谓词。但是,根据文本的大小,这可能不是很有效。

以下谓词将起作用:

date_string similar to '%[[:DIGIT:]]{2}.[[:DIGIT:]]{2}.[[:DIGIT:]]{4}%'

有关语法的详细信息,请参阅SIMILAR TO上的语言参考。

如果需要对显式列应用查询逻辑,则可能需要重新考虑设计并使用具有实际 SQLDATE的显式列,而不是依赖于分析文本列中的内容。

最新更新