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 に答える