gpt4 book ai didi

mysql - 在 MySQL 中用全年更新生日

转载 作者:行者123 更新时间:2023-11-29 11:29:02 26 4
gpt4 key购买 nike

我有一个用于生日的列,它是 varchar 类型,我想更改为日期并添加完整年份,而不是仅使用 2 位数字。

如果某人出生于 05061985,MySQL 会删除前 0 并显示为 50685

更改50685
至==>05061985

所有用户的生日都是从 1900 年到 1999 年

最佳答案

让我们一步一步来

我们可以有长度为 5 或 6 的字符串,因此我们确保有一个长度为 6 的字符串用零填充

select LPAD('50685', 6, '0');

现在我们在字符串中的第 4 个和第 5 个位置之间插入“19”

select CONCAT(LEFT(LPAD('50685', 6, '0'), 4), '19', RIGHT(LPAD('50685', 6, '0'), 2));

现在最后一步我们将更新表 FOOBAR 中的所有 BIRTHDAY 字段

update FOOBAR set BIRTHDAY=CONCAT(LEFT(LPAD(BIRTHDAY, 6, '0'), 4), '19', RIGHT(LPAD(BIRTHDAY, 6, '0'), 2));

无论如何,在这种情况下,您仍然有一个字符串字段,我建议进一步修改格式以进行正确的日期字段转换,例如 YYYY-MM-DD

update FOOBAR set BIRTHDAY=LPAD(BIRTHDAY, 6, '0');
update FOOBAR set BIRTHDAY=CONCAT('19' ,
RIGHT(BIRTHDAY, 2),
'-',
SUBSTR(BIRTHDAY, 3, 2),
'-',
LEFT(BIRTHDAY, 2));
alter table FOOBAR modify BIRTHDAY date;

关于mysql - 在 MySQL 中用全年更新生日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37729482/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com