坐端端同学 2022-01-17 19:31 采纳率: 100%
浏览 173
已结题

mysql根据出生日期计算年龄并且插入到已有记录中

业务扩展中增加了年龄字段,原来有出生日期字段
问题相关代码,请勿粘贴截图
-- c.增加年龄字段,并且由出生日期算出插入到表中
alter table info_feedback
add fd_age varchar(11)
after fd_birthday

insert into info_feedback(fd_age)
select ROUND(DATEDIFF(CURDATE(), fd_birthday)/365.2422)
from info_feedback
where id is not null
运行结果及报错内容

1364 - Field 'fd_name' doesn't have a default value, Time: 0.000000s

我的解答思路和尝试过的方法

我认为报错是因为默认插入的是全部的记录列表,包括还没有数据内容的;想知道怎么插入到已有记录的那里呢?

img

我想要达到的结果
  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2022-01-17 19:51
    关注

    fd_name字段不能为空吧
    你这逻辑不对啊,应该是修改不是新增。

    update info_feedback f set fd_age=(
    select ROUND(DATEDIFF(CURDATE(), fd_birthday)/365.2422)
    from info_feedback
    where id=f.id)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月25日
  • 已采纳回答 1月17日
  • 创建了问题 1月17日

悬赏问题

  • ¥15 yolov8边框坐标
  • ¥15 matlab中使用gurobi时报错
  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真