假设我有一个名为report_date
的列,其数据类型为date
,我想选择给定年份和月份的最大日期,例如日期为:
+------------+
|report_date |
+------------+
|2017-10-25 |
|2017-10-12 |
|2017-10-28 |
|2017-10-23 |
+------------+
我想选择2017年10月的最长日期。
老实说,我不知道如何获得最大日期。任何帮助都会非常令人满意。 谢谢。答案 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';