1

次のタスクを実行する必要がある「run_date」という日付フィールドを持つテーブルがあります。

((最新のAND) AND前日) を持つ値を取得します。

Example:

run_date
2012-12-24
2012-12-31
2013-01-03
2013-01-07
2013-01-14

上記のルールに従っているため、「2013-01-03」を返すクエリが必要です。私の最善の試みは次のとおりです。

SELECT
    run_date as val
FROM
    myTable
    WHERE  to_char(run_date, 'MM'::text) = (SELECT MAX(EXTRACT ('MONTH' FROM run_date)) FROM myTable)
    and to_char(run_date, 'YYYY'::text) = (SELECT MAX(EXTRACT ('YEAR' FROM dado_dt_data_rodada)) FROM myTable)

    ORDER BY val ASC LIMIT 1

もちろん、月は 1 ~ 12 の間で循環するため、上記のクエリは機能しません。助けていただければ幸いです、ありがとう!

4

1 に答える 1

1

最近の月の最も早い日付が必要だと思います。これを試して:

SELECT run_date as val
FROM myTable
ORDER BY to_char(run_date, 'YYYY-MM') desc, run_date asc
LIMIT 1
于 2013-01-15T19:38:15.377 に答える