psql date_trunc
时间: 2025-01-24 07:05:18 浏览: 42
### PostgreSQL `date_trunc` 函数详解
#### 功能描述
`date_trunc` 是 PostgreSQL 提供的一个用于截断日期时间类型的函数。该函数可以将给定的时间戳按照指定精度进行舍入处理,返回一个新的时间戳。
#### 参数说明
- **第一个参数**:字符串类型,表示要保留的时间部分(如 'year', 'month', 'day' 等)
- **第二个参数**:timestamp 或 interval 类型的数据,即待处理的具体时间点或时间段
#### 返回值
根据所提供的精度单位来决定最终的结果形式,通常会清除掉比所选精度更细的部分,并保持其余部分不变[^1]。
#### 使用实例
```sql
SELECT date_trunc('hour', TIMESTAMP '2023-07-19 14:38:45');
-- 结果将是 "2023-07-19 14:00:00"
```
此命令将会把输入的时间戳精确到小时级别并去除分钟秒数以及微秒数。
对于天级别的操作:
```sql
SELECT date_trunc('day', CURRENT_TIMESTAMP);
-- 假设当前时间为 "2023-07-19 14:38:45.123456+00", 则结果为 "2023-07-19 00:00:00+00"
```
这里展示了如何获取当天零点时刻的时间戳。
还可以应用于聚合查询场景下按月统计销售总额的情况:
```sql
SELECT
TO_CHAR(date_trunc('month', order_date), 'YYYY-MM') AS month,
SUM(total_amount) AS total_sales
FROM orders
GROUP BY date_trunc('month', order_date)
ORDER BY month;
```
这段 SQL 将订单表中的数据依据月份分组计算每个月份内的总销售额[^2]。
阅读全文
相关推荐

















