pgsql将整列txt"20230322101841”拼接为“2023-03-22 10:18:41”
时间: 2024-03-23 08:43:52 浏览: 80
你可以使用 PostgreSQL 的内置函数 `to_timestamp` 和 `substring` 来实现这个操作。假设你的列名为 `txt`,具体方法如下:
```
SELECT to_timestamp(
substring(txt from 1 for 4) || '-' ||
substring(txt from 5 for 2) || '-' ||
substring(txt from 7 for 2) || ' ' ||
substring(txt from 9 for 2) || ':' ||
substring(txt from 11 for 2) || ':' ||
substring(txt from 13 for 2),
'YYYY-MM-DD HH24:MI:SS'
) AS timestamp_col
FROM your_table;
```
这个查询会将你的 `txt` 列中的字符串转换为时间戳类型,并将其命名为 `timestamp_col`。你需要将 `your_table` 替换为实际表名。输出结果将包含一个新的列 `timestamp_col`,其中包含转换后的时间戳值。
如果你想要将转换后的时间戳值存储到一个新的列中,你可以使用 `ALTER TABLE` 命令添加一个新的列,然后使用 `UPDATE` 命令将转换后的时间戳值插入到新的列中。例如:
```
ALTER TABLE your_table ADD COLUMN timestamp_col TIMESTAMP;
UPDATE your_table SET timestamp_col = to_timestamp(
substring(txt from 1 for 4) || '-' ||
substring(txt from 5 for 2) || '-' ||
substring(txt from 7 for 2) || ' ' ||
substring(txt from 9 for 2) || ':' ||
substring(txt from 11 for 2) || ':' ||
substring(txt from 13 for 2),
'YYYY-MM-DD HH24:MI:SS'
);
```
这个命令将在 `your_table` 表中添加一个名为 `timestamp_col` 的新列,并将转换后的时间戳值插入到该列中。
阅读全文