pgsql计算两日期之间工作日天数
时间: 2023-07-27 17:28:47 浏览: 256
在 PostgreSQL 中,可以使用以下查询计算两个日期之间的工作日天数:
```sql
SELECT COUNT(*) AS workdays
FROM generate_series('2021-06-01'::date, '2021-06-30'::date, '1 day') AS date
WHERE extract('isodow' from date) < 6;
```
这个查询使用 `generate_series` 函数生成两个日期之间的日期序列,然后使用 `extract` 函数获取日期的 ISO 星期几(1-7,其中 6 和 7 表示周末),最后筛选出工作日并计算数量。在这个查询中,我计算了 2021 年 6 月份的工作日天数。你可以更改日期范围以适应你的需求。
相关问题
pgsql 获取两个日期之间的天数
你可以使用 PostgreSQL 内置函数 `date_part()` 和 `age()` 来计算两个日期之间的天数。以下是一个示例查询:
```sql
SELECT date_part('day', age('2021-01-01'::date, '2021-02-01'::date)) AS days_between;
```
在这个示例中,我们计算了从 2021 年 1 月 1 日到 2021 年 2 月 1 日之间的天数。`date_part()` 函数用来提取 `age()` 函数返回的时间间隔的天数部分,从而得到两个日期之间的天数。
pgsql计算两个时间戳相差月数
你可以使用以下方法来计算两个时间戳之间的月份数:
```sql
SELECT
DATE_PART('year', age(timestamp2, timestamp1)) * 12 + DATE_PART('month', age(timestamp2, timestamp1)) as months_diff
FROM
your_table;
```
其中,`timestamp1`和`timestamp2`是你要比较的两个时间戳,`your_table`是包含这两个时间戳的表名。这个查询会返回两个时间戳之间的月份数。
注意:上述方法是基于 PostgreSQL 数据库的。
阅读全文