pgsql将列“2023-01-26 13:20:85”中的最后两位都替换为00
时间: 2024-03-27 14:38:50 浏览: 13
您可以使用以下 PostgreSQL 查询来将列中的最后两位替换为00:
```sql
UPDATE 表名 SET 列名 = date_trunc('minute', 列名) + interval '1 second' * (extract('epoch' from 列名)::int / 60);
```
例如,如果您有一个名为 my_table 的表,其中包含一个名为 my_column 的日期时间列,并且您想要将该列中的最后两位替换为00,则可以使用以下查询:
```sql
UPDATE my_table SET my_column = date_trunc('minute', my_column) + interval '1 second' * (extract('epoch' from my_column)::int / 60);
```
这将将 my_column 中的值“2023-01-26 13:20:85”替换为“2023-01-26 13:20:00”。
相关问题
pgsql将TXT列2023-01-26 01:13:70中最右边两位数减去41
假设你要更新一个名为table_name的表中的TXT列,可以使用以下SQL语句:
UPDATE table_name SET TXT = CONCAT(SUBSTRING(TXT FROM 1 FOR LENGTH(TXT)-2), TO_CHAR(TO_NUMBER(SUBSTRING(TXT FROM -2 FOR 2)) - 41, 'FM00'));
这将从TXT列中提取除最后两位之外的所有内容,将最后两位转换为数字并减去41,然后将结果追加到剩余的文本中。注意,此方法假设TXT列中的最后两个字符始终是数字。如果这不是始终如一的,那么你需要使用更复杂的逻辑来处理。
pgsql提取列202301261320852转换为2023-01-26 13:20:85.123
您可以使用 PostgreSQL 中的 `to_char` 函数将日期时间列转换为指定的字符串格式。例如,如果您有一个名为 `my_table` 的表,其中包含一个名为 `my_column` 的日期时间列,并且您想要将该列中的值“202301261320852”转换为格式为“YYYY-MM-DD HH24:MI:SS.US”的字符串,则可以使用以下查询:
```sql
SELECT to_char(to_timestamp(my_column::text, 'YYYYMMDDHH24MISSMS'), 'YYYY-MM-DD HH24:MI:SS.US') FROM my_table;
```
该查询将 `my_column` 中的值“202301261320852”转换为“2023-01-26 13:20:85.200”,其中最后两位被转换为毫秒值。它使用 `to_timestamp` 函数将日期时间列转换为时间戳,并使用 `'YYYYMMDDHH24MISSMS'` 格式字符串指定输入格式。然后,使用 `to_char` 函数将时间戳转换为指定的字符串格式。
如果您要更新表中的列,而不仅仅是将其转换为字符串并将其显示在查询结果中,则可以使用以下更新查询:
```sql
UPDATE my_table SET my_column = to_timestamp(my_column::text, 'YYYYMMDDHH24MISSMS');
```
这将 `my_column` 中的值“202301261320852”更新为“2023-01-26 13:20:85.200”。