pgsql将varchar列2023-01-26 01:13:70中最右边大于等于60的两位数减去41
时间: 2024-03-29 08:37:41 浏览: 16
如果你要将varchar列中最右边大于等于60的两位数减去41,你可以使用以下SQL语句:
UPDATE table_name SET varchar_column = CONCAT(SUBSTRING(varchar_column FROM 1 FOR LENGTH(varchar_column)-2),
CASE WHEN TO_NUMBER(SUBSTRING(varchar_column FROM -2 FOR 2)) >= 60
THEN TO_CHAR(TO_NUMBER(SUBSTRING(varchar_column FROM -2 FOR 2)) - 41, 'FM00')
ELSE SUBSTRING(varchar_column FROM -2 FOR 2) END);
这将从varchar_column列中提取除最后两位之外的所有内容,然后检查最后两位是否大于等于60。如果是,则将这两位减去41,否则保持不变。最后,将结果追加到剩余的文本中。请注意,此方法假设varchar_column列中的最后两个字符始终是数字。如果这不是始终如一的,那么你需要使用更复杂的逻辑来处理。
相关问题
pgsql将TXT列2023-01-26 01:13:70中最右边大于等于60的两位数减去41
如果你要将TXT列中最右边大于等于60的两位数减去41,你可以使用以下SQL语句:
UPDATE table_name SET TXT = CONCAT(SUBSTRING(TXT FROM 1 FOR LENGTH(TXT)-2),
CASE WHEN TO_NUMBER(SUBSTRING(TXT FROM -2 FOR 2)) >= 60
THEN TO_CHAR(TO_NUMBER(SUBSTRING(TXT FROM -2 FOR 2)) - 41, 'FM00')
ELSE SUBSTRING(TXT FROM -2 FOR 2) END);
这将从TXT列中提取除最后两位之外的所有内容,然后检查最后两位是否大于等于60。如果是,则将这两位减去41,否则保持不变。最后,将结果追加到剩余的文本中。
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列中的最后两个字符始终是数字。如果这不是始终如一的,那么你需要使用更复杂的逻辑来处理。