pgsql提取列202301261320852的最后两位替换为0
时间: 2024-03-27 21:38:56 浏览: 70
sql动态行转列的两种方法
您可以使用 PostgreSQL 中的 `date_trunc`、`extract` 和 `to_timestamp` 函数来将日期时间列中的最后两位替换为0。例如,如果您有一个名为 `my_table` 的表,其中包含一个名为 `my_column` 的日期时间列,并且您想要将该列中的最后两位替换为0,则可以使用以下查询:
```sql
UPDATE my_table SET my_column = to_timestamp(extract(epoch FROM date_trunc('minute', my_column))::int);
```
这将 `my_column` 中的值“2023-01-26 13:20:85”替换为“2023-01-26 13:20:00”。该查询将使用 `date_trunc` 函数将日期时间列的秒数截断为0,并使用 `extract` 函数获取该值的 Unix 时间戳(自 1970 年 1 月 1 日以来的秒数)。然后,将此时间戳转换为新的日期时间值,其中最后两位设置为0。
请注意,如果您的日期时间列包含毫秒(例如“2023-01-26 13:20:85.123”),则上述查询将截断毫秒,并将其替换为0。如果您想要保留毫秒值,则需要相应地调整查询。
阅读全文