日期字段上的通配符搜索

时间:2011-02-26 15:36:22

标签: jpa-2.0 hsqldb

我将HSQLDB2.0和JPA2.0用于我当前的项目,并且在DB中有很少的日期列。

我想在日期列上运行通配符查询。我怎么能这样做?

例如:如果我的数据库包含两行,日期值为:10-01-2011和15-02-2011

我的搜索条件为“%10-01%”,结果应为10-01-2011。

否则,如果搜索条件为“%2011%”,则需要使用选择查询获取这两行。

提前致谢,

萨蒂亚

2 个答案:

答案 0 :(得分:0)

您可以定义包含日期副本的VARCHAR类型的自动生成列。然后,您可以使用LIKE谓词和REGEXP_MATCHES()函数执行查询。列定义的示例如下:

DATEGEN VARCHAR(10) GENERATED ALWAYS AS (CAST(DATECOL AS VARCHAR(10))

请注意,DATE的字符串表示形式为“2011-02-26”,您的查询字符串应遵循此模式。

答案 1 :(得分:0)

这可以通过以下格式实现:

select date_birth from member where to_char(date_birth,'MM-yyyy') like '%02-2011%'

select date_birth from member where to_char(date_birth,'MM-dd') like '%02-15%'

select date_birth from member where to_char(date_birth,'dd-yyyy') like '%30-2011%'

此致

萨蒂亚