【问题标题】:The UPDATE statement in SQLSQL 中的 UPDATE 语句
【发布时间】:2023-02-01 16:33:26
【问题描述】:

我正在处理 TableA,它的 Column1 的日期格式为:YYY-MM-DD 和 Column2,数字范围为 1-12。 我正在尝试将日期年份(仅年份)更改为 2022 WHERE Column2 = 10

注意:我不是要更改月份和日期。

UPDATE TableA
SET Column1 = '2021'
WHERE Column2 = 10

【问题讨论】:

  • 你猜怎么了? MySQL 是与 SQL Server 完全不同的产品 - 帮自己一个忙,更正您的标签,以便合适的专家查看您的帖子。
  • 您真的将日期存储为字符串吗?这是一个非常糟糕的主意......你显示的格式为YYY-...,即年份只有 3 位数字,那更糟糕。

标签: mysql sql sql-server sql-update sqlcode


【解决方案1】:

理想情况下,您永远不会将日期存储为字符串 - 使用正确的数据类型,即 date。我还假设 YYY-MM-DD 是一个错字,它应该读作 YYYY-MM-DD

然后一个简单的字符串连接应该工作

UPDATE TableA SET
    Column1 = '2022' + SUBSTRING(Column1,5,6)
WHERE Column2 = 10;

【讨论】:

  • 这是针对 MySQL 和/或 MS SQL Server 的吗?
【解决方案2】:
UPDATE TableA
SET Column1 = '2022' + substring(Column1,6,5)
WHERE Column2 = 10

所以很难将 2022 替换为前 4 个字符并将 column1 的其余部分附加到末尾

【讨论】:

  • 看起来与其他答案相同?有两次有好处吗?哦,除了它在子字符串中是 5,6。
猜你喜欢
  • 2011-07-16
  • 2016-06-12
  • 2013-03-07
  • 1970-01-01
  • 1970-01-01
  • 2014-10-30
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
相关资源
最近更新 更多