pgsql 时间格式
时间: 2025-01-06 20:33:25 浏览: 8
### PostgreSQL 时间格式化方法和函数
#### 使用 `to_char` 函数进行时间格式化
在 PostgreSQL 中,`to_char` 函数用于将日期或时间戳转换为指定格式的字符串。例如,要比较创建时间和当前日期:
```sql
SELECT * FROM table_name WHERE to_char(create_time, 'yyyy-mm-dd') = to_char(CURRENT_DATE , 'yyyy-mm-dd');
```
如果想要查询前一天的数据,则可以这样操作[^1]:
```sql
SELECT * FROM table_name WHERE to_char(create_time, 'yyyy-mm-dd') = to_char(CURRENT_DATE - interval '1 day', 'yyyy-mm-dd');
```
#### 将 UNIX 纪元转换成时间戳
对于从 UNIX 纪元(自 1970 年 1 月 1 日以来的秒数)到时间戳的转换,可使用 `to_timestamp` 函数。此函数接受一个双精度浮点数值作为参数并返回带有时区的时间戳。
```sql
SELECT to_timestamp(200120400);
```
这会将给定的 Unix 时间戳转换为相应的标准时间表示形式[^2]。
#### 截断时间戳至特定单位
通过 `date_trunc` 函数能够截取掉不需要的部分,只保留年份、月份、天数甚至更细粒度的信息。比如仅保留小时级别信息如下所示[^3]:
```sql
SELECT date_trunc('hour', timestamp '2001-02-16 20:38:40');
```
#### 获取当前日期与时间
为了取得系统的当前日期或时间,PostgreSQL 提供了一系列内置函数来满足不同需求。这些函数包括但不限于 `CURRENT_DATE`, `CURRENT_TIME`, 和 `CURRENT_TIMESTAMP`. 这些命令可以直接应用于 SQL 查询之中以获得即时的结果[^4].
```sql
-- 返回今天的日期
SELECT CURRENT_DATE;
-- 返回现在的时间
SELECT CURRENT_TIME;
-- 返回带有时区信息的当前时刻
SELECT CURRENT_TIMESTAMP;
```
阅读全文