选择给定年份和月份的最大日期

时间:2017-11-11 10:13:15

标签: postgresql

假设我有一个名为report_date的列,其数据类型为date,我想选择给定年份和月份的最大日期,例如日期为:

+------------+
|report_date |
+------------+
|2017-10-25  |
|2017-10-12  |
|2017-10-28  |
|2017-10-23  |
+------------+

我想选择2017年10月的最长日期。

老实说,我不知道如何获得最大日期。任何帮助都会非常令人满意。

谢谢。

1 个答案:

答案 0 :(得分:0)

使用提取物:

select max(report_date)
from the_table
where (extract(year from report_date), extract(month from report_date)) = (2017,10);

或使用范围查询:

select max(report_date)
from the_table
where report_date >= date '2017-10-01'
  and report_date < date '2017-11-01'

或使用字符串比较

select max(report_date)
from the_table
where to_char(report_date,'yyyy-mm') = '2017-10';

或者使用date_trunc()

select max(report_date)
from the_table
where date_trunc('month', report_date)::date = date '2017-10-01';