0

我有一个问题,我想从表中查找与给定日期的日期和年份匹配的所有记录,例如所有月份

给定日期(mm/dd/yyyy):

'12/24/2010'

返回所有带有日期的记录:

'12/24/2010'
'11/24/2010'
'10/24/2010'
'09/24/2010'
'08/24/2010'
'07/24/2010'
'06/24/2010'
'05/24/2010'
'04/24/2010'
'03/24/2010'
'02/24/2010'
'01/24/2010'

有没有办法在一个查询中做到这一点?我想在一个函数中实现它,但不想使用循环(只是为了速度)。任何帮助将不胜感激!:)

4

2 回答 2

3

假设您的列都定义为DATE,从功能上讲,您当然可以执行类似的操作

SELECT *
  FROM my_table
 WHERE to_char( date_column, 'DD-YYYY' ) = to_char( date '2010-12-24', 'DD-YYYY' )

您可能会创建一个基于函数的索引,to_char( date_column, 'DD-YYYY' )以提高查询效率。

于 2013-06-21T17:47:45.653 回答
-1

尝试

SELECT date_column FROM some_table 
WHERE 
TO_DATE(date_column, 'MM') = TO_DATE(given_date, 'MM') 
AND 
TO_DATE(date_column, 'YYYY')) = TO_DATE(given_date, 'YYYY')

given_date 是您的“2010 年 12 月 24 日”。

于 2013-06-21T17:54:38.770 回答