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