标题:sql多种情况返回一个值问题
只看楼主
dephy
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-9-28
结帖率:0
已结贴  问题点数:10 回复次数:2 
sql多种情况返回一个值问题
表 字段  ID date1 date2 date3 day

如果date3为空,date2不为空, day= ((Now-date2)+(date2-date1))/365;
如果date3不为空,date2为空, day= (date3-date1)/365;
sql怎么写
搜索更多相关主题的帖子: sql 
2009-10-15 09:03
Vitamin1999
Rank: 2
等 级:论坛游民
威 望:1
帖 子:30
专家分:66
注 册:2009-9-23
得分:5 
日期是不能直接相加减的,你必须指定是什么相加减,是日期,月份还是年份之类的,看你的题意,应该是日期之间的换算吧,以下是SQL

select case
        when date3 is null and date2 is not null then (datediff(dd,date2,getDate()))+(datediff(dd,date1,date2))/365
        when date3 is not null and date2 is null then (datediff(dd,date1,date3))/365
        end as day
from 表
2009-10-15 10:27
我是傻逼
Rank: 2
等 级:论坛游民
威 望:1
帖 子:9
专家分:12
注 册:2009-10-12
得分:5 
select case when date3 is null then (case when date2 is not null then ((Now-date2)+(date2-date1))/365)
           else (case when data2 is not null then (date3-date1)/365) end as day from table where.....
2009-10-16 20:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-288595-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.126589 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved