sql - 如何根据日期获取一个月中的天数?

标签 sql postgresql

有没有一种方法可以使用 YYYY-MM-DD 格式的日期提取这个月有多少天?

例子:

对于 2016-02-05 它将给出 29(2016 年 2 月有 29 天)

对于 2016-03-12 它将给出 31

对于 2015-02-05 它将给出 28(2015 年 2 月有 28 天)

我正在使用 PostgreSQL

编辑:

LAST_DAY function in postgres不是我要找的。它返回 DATE 而我期望一个 Integer

最佳答案

实现此目的的一种方法是从当月的月初减去下一个月的月初:

db=> SELECT DATE_TRUNC('MONTH', '2016-02-05'::DATE + INTERVAL '1 MONTH') - 
            DATE_TRUNC('MONTH', '2016-02-05'::DATE);
 ?column? 
----------
 29 days
(1 row)

关于sql - 如何根据日期获取一个月中的天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35333889/

相关文章:

php - laravel - 给定可变用户输入生成组合

postgresql - 启动/停止 postgres 数据库 pg_ctl 或服务 postgres 的正确方法

sql - 文本数组中的 Postgres 检查约束值的有效性

PostgreSQL - 使用 JSONB 作为单个函数参数的任何缺点

sql - 我可以使用 TRAN&ROLLBACK 进行打印预览吗?

php - MySQL大于日期返回小于给定日期的日期

sql - ASP.NET Web API 数据库未在 localdb 中创建

sql - SQL触发器中的更新函数

postgresql - 使用openlayers将空的多线串保存到postgis中

database - 在数据库中创建百万表?