读书人

教一上

发布时间: 2012-12-17 09:31:40 作者: rapoo

教一下各位大哥

A001日期是1995年4月15日,在是2012年11月6日,
1995年到2012年17年,4月到11月6月.
如何用SQL句算他的在年月17.6

select '2012/11/06'-'1995/4/15'=17.6

上面的句不知道怎,麻各位了..

[最优解释]
null
[其他解释]


declare @a date,@b date,@c int
select @a='1995/4/15',@b='2012/11/06'

select @c=datediff(m,@a,@b)
select rtrim(@c/12)+'.'+rtrim(@c%12) '在年月'

/*
在年月
-------------------------
17.7

(1 row(s) affected)
*/

[其他解释]
select ROUND(DATEDIFF(MONTH,'1995/4/15','2012/11/06')/12.0,1)

[其他解释]
select CONVERT(VARCHAR(10),DATEDIFF(year,CONVERT(DATE,'1995/4/15'),CONVERT(DATE,'2012/11/06')))+'.'+CONVERT(VARCHAR(10),DATEDIFF(mm,CONVERT(DATE,'1995/4/15'),CONVERT(DATE,'2012/11/06'))-DATEDIFF(year,CONVERT(DATE,'1995/4/15'),CONVERT(DATE,'2012/11/06'))*12-1)

[其他解释]
declare @begin date,@end date
sset @begin='1995/4/15',@end='2012/11/06'

select cast(datediff(year,@begin,@end) as varchar(10))+'.'+cast(datediff(mm,@begin,@end)%12-1 as varchar(10))

/*
-------
17.6
*/

[其他解释]
上面的答案挺好的

[其他解释]
上面只有#1和#5行,其它都是的.麻各位再修正一下,.
[其他解释]
到日期在年
1995年4月17.6
2011年5月1.4

5的兄弟一下,在年1.4怎算成1.5呢?上面是正的果.
select ROUND(DATEDIFF(MONTH,'1995/4/15','2012/11/06')/12.0,1) 果是17.6
select ROUND(DATEDIFF(MONTH,'2011/5/25','2012/11/06')/12.0,1) 果是1.5
麻一下,.

读书人网 >SQL Server

热点推荐