回答
SELECT
DATE_PART('days',
DATE_TRUNC('month', NOW())
+ '1 MONTH'::INTERVAL
- '1 DAY'::INTERVAL
)
用任何其他日期替代NOW()
。
我会用''1 day':: interval'替换第二个'DATE_TRUNC('month',NOW())' – sayap
@ sayap的修正至关重要;该解决方案可能会导致错误的结果(例如,'2006-04-30':: date')代替NOW()' –
请注意,由于闰年,day_in_month(2)的预期输出可能为29。你可能想要传递一个日期而不是int。
此外,提防夏令时的处理:去除时区,否则一些monthes计算可能是错的(下面的例子中CET/CEST):
SELECT DATE_TRUNC('month', '2016-03-12'::timestamptz) + '1 MONTH'::INTERVAL
- DATE_TRUNC('month', '2016-03-12'::timestamptz) ;
------------------
30 days 23:00:00
SELECT DATE_TRUNC('month', '2016-03-12'::timestamp) + '1 MONTH'::INTERVAL
- DATE_TRUNC('month', '2016-03-12'::timestamp) ;
----------
31 days
这工作也是如此。
WITH date_ AS (SELECT your_date AS d)
SELECT d + INTERVAL '1 month' - d FROM date_;
或者只是:
SELECT your_date + INTERVAL '1 month' - your_date;
这两个回报间隔,不整数。
SELECT cnt_dayofmonth(2016, 2); -- 29
create or replace function cnt_dayofmonth(_year int, _month int)
returns int2 as
$BODY$
-- ZU 2017.09.15, returns the count of days in mounth, inputs are year and month
declare
datetime_start date := ('01.01.'||_year::char(4))::date;
datetime_month date := ('01.'||_month||'.'||_year)::date;
cnt int2;
begin
select extract(day from (select (datetime_month + INTERVAL '1 month -1 day'))) into cnt;
return cnt;
end;
$BODY$
language plpgsql;
代码只回答不鼓励,因为它们不会为将来的读者提供很多信息,请为你写的内容提供一些解释 – WhatsThePoint
- 1. 如何在R中的每个月获得10个第一天
- 2. 如何获得当月的第一天?
- 3. 如何在PHP中获得本月的第一天数字?
- 4. 如何获得前一个月最后一天绑定数据
- 5. 如何根据年份获得一个月内的总天数?
- 6. 如何获得特定月份和年份的一个月的天数?
- 7. 如何获得一个月的周数
- 8. 如何获得Python中两个月之间的天数
- 9. 如何获得一个月(SQL Server)的最后一天
- 10. 我如何获得一个月的最后一天?
- 11. 获得一个月是几天?
- 12. 如何在C#中获得本月的最后一天?
- 13. 如何获得每天值在一个月
- 14. 如何获得当月的时间戳,一个月的第一天,零时
- 15. 如何获得一个月的两天的int列表?
- 16. 如何获得本月的第一天的一周中的哪一天?
- 17. 如何获得上个月的第一天?
- 18. MomentJS - 如何从日期获得上个月的最后一天?
- 19. 如何获得每个月的最后一天?
- 20. 如何在Impala中获取前一个月的最后一天?
- 21. 使用Python 2.6我如何获得一个整数的月份的一天?
- 22. 如何获得月,年和日在PostgreSQL的两个日期
- 23. 如何获得整月或周或天级的数据在一个查询
- 24. 如何获得该月的第一天的日期在PHP
- 25. 如何获得一个总天数
- 26. 如何使用Perl Date :: Manip获得一个月的数组天数?
- 27. 如何获得前一个月的最后一天,在Javascript或JQuery的
- 28. 我如何获得在一个月一天的总量,而忽略周末
- 29. 如何在红宝石中获取下个月的第一天?
- 30. 如何从PostgreSQL中的两个日期的差异中获得天数?
关于您的示例,您是否听说过闰年(或者是否存在隐含的假设,即*当前*年)? – NPE