1

我有一个名为“run_date”的日期字段的表,我需要在其中执行以下任务:

获取具有((最新年份月份)和较早日期)的值。

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 回答