我有一个表,其中有一个名为'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之间循环,所以上面的查询不起作用。我很感激任何帮助,谢谢!
我想你想要最近一个月最早的日期。试试这个:
SELECT run_date as val
FROM myTable
ORDER BY to_char(run_date, 'YYYY-MM') desc, run_date asc
LIMIT 1