中易网

sql中如何获取表中datetime类型的指定部分?

答案:3  悬赏:20  
解决时间 2021-02-17 18:00
例如:表a中有2个列number和birtyday,如何通过select语句计算出number为01的人的年龄?



最佳答案
select datediff(year,Birthday,getdate())  as age from a where number='01'
--此句是以年份为依据,两个年份相减而得。

select case
  when day(getdate())-day(Birthday)<0
  then datediff(month,Birthday,getdate())/12-1     

  when day(getdate())-day(Birthday)>=0
  then datediff(month,Birthday,getdate())/12
end
as age from a where number='01'
--此句是以月份为依据。

--得到准确的年龄计算:
select case
  when DatePart(dy, getdate())-DatePart(dy, Birthday)<0
  then datediff(year,Birthday,getdate())-1     

  when DatePart(dy, getdate())-DatePart(dy, Birthday)>=0
  then datediff(year,Birthday,getdate())
end
as age  from a where number='01'
全部回答
select number,birthday,nl=(datediff(yy,birthday,'2014-06-03')) from a 主要是找函数计算,以上也没有试,试一下行否。
首先 as datetime后,肯定是带年月日的时间,不可能是你说的那种15:00:00:000 再一个,你传一个整型需要多次类型转换 declare @searchtime int = 1500000000  --输入查询时间 declare @var varchar(20) declare @str varchar(20) select @var=cast(@searchtime as varchar) select @str=left(@var,2)+':'+substring(@var,3,2)+':'+substring(@var,5,2)+'.'+right(@var,3) select convert(varchar,@str,114)最后这个结果也是个字符型的,如果你转成datetime型的,前边就会有1900-1-1了
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
太平洋保险理赔!发生保险理赔情况时,业务员
EVA算是一部悲剧吗
临沂婚庆 大红灯笼 和牵手哪个比较好一些 。
将61分之43的分子和分母同时加上一个数后得9
当好朋友的男朋友喜欢上你时你该怎么办?
脑筋急转弯:小王一边刷牙,一边悠闲的吹着口
为什么adobe photoshop7.0 另存为web格式是灰
大吨位的80吨吊车出租会不会很贵
39*55*23cm 的箱子 是多少寸啊?这是怎么算的?
8090婚纱艺术摄影怎么去啊,有知道地址的么
李亚鹏演过什么电影?
如何驱赶鸟在固定的树上拉屎。
茂名到惠來县多少公里
城南开发区荆西幼儿园地址在什么地方,我要处
以飘开头的四字词语有什么
推荐资讯
黄品冠的 我以为-女生独白版 空间背景音乐链
知道两种溶液的物质的量浓度和体积,怎么求其
罗平县鲁布革布依族苗族乡大坡村民委员会在什
小狗半夜老叫怎么办
如何召开新公司第一次会议
手机用户的平均在网时长怎么计算
建行信用卡可以办理商用车分期吗
表达夫妻感情出现问题的诗词?
JBL SoundFly播放器好么?
一个女生跟你说,我愿意做你背后的女人,是什
豪庭门业我想知道这个在什么地方
大家说这个是女的还是男的?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?