sql新手求教这个语句怎么写

小小爬虾 2016-07-20 07:37:37
描述:
只有一个表A,里面有字段 id(varchar),birthday(varchar),age(int)。
假设表中有数据 111,2010-6-8, 空 222,2012-10-12,空 333,2009-9-19,空 三条记录,我想写一个sql语句,用于一次性计算三条记录的age并插入相应记录中。

我写的代码如下:
//假设年龄用天来算:今天-出生日期
update A set age=(select datediff(day,cast(birthday as datetime),getdate()) from A)

结果报错:sql 子查询返回的值不止一个...

请教这个代码怎么写?谢谢!
...全文
65 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
造物主在胃中 2016-07-21
  • 打赏
  • 举报
回复
引用 1 楼 qq_26365845 的回复:
update a set age=datediff(day,cast(birthday as datetime),getdate()) 另外给楼主2点建议:一、birthday这个字段类型最好用datatime类型,要不然可能会影响以后的搜索和计算,二、age这个字段一般不需要物理意义上的存在,只需要在查询的时候用birthday 生成一个age字段就行了
应该是

update a 
set age=datediff(year,cast(birthday as datetime),getdate())
小小爬虾 2016-07-20
  • 打赏
  • 举报
回复
引用 1 楼 qq_26365845 的回复:
update a set age=datediff(day,cast(birthday as datetime),getdate()) 另外给楼主2点建议:一、birthday这个字段类型最好用datatime类型,要不然可能会影响以后的搜索和计算,二、age这个字段一般不需要物理意义上的存在,只需要在查询的时候用birthday 生成一个age字段就行了
谢谢!
就叫彪哥 2016-07-20
  • 打赏
  • 举报
回复
update a set age=datediff(day,cast(birthday as datetime),getdate()) 另外给楼主2点建议:一、birthday这个字段类型最好用datatime类型,要不然可能会影响以后的搜索和计算,二、age这个字段一般不需要物理意义上的存在,只需要在查询的时候用birthday 生成一个age字段就行了

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧