关于SQL server 中计算时间的长短
要计算2个时间的差值。 
 时间的格式是2006-12-01   12:00 
 我直接用语句select   date1-date2....得出来的结果却是1900-1-0   0:12,后面的分钟小时是对的,但是前面的年份怎么就是1900呢?而且在2006年1月的相减得出的结果是1900-1-1   0:12,无故多出了1天.不知道这个语句要怎么写?
------解决方案--------------------datediff函数
------解决方案----------------------创建一个求日期差值的函数 
 create function f_e_get_datediff (@begin_date datetime,@end_date datetime) 
 returns varchar(50) 
 as 
 begin 
 	declare @datediff varchar(20),@date datetime 
 	if @begin_date >  @end_date 
 	begin 
 		select  @datediff =  '- ',@date = @begin_date,@begin_date = @end_date,@end_date = @date 
 	end 
 	else  
 		set @datediff =  ' '   
 	select  @datediff = @datediff + convert(varchar(8000),datediff(day,@begin_date,@end_date) + 
 		case  
 			when convert(varchar(10),@begin_date,108) >  convert(varchar(10),@end_date,108)  
 			then -1  
 			else 0  
 		end ) +  '/ ' + 
 		right(convert(varchar(50),@end_date - @begin_date,120),8)   
 	return @datediff 
 end   
 go   
 --测试 
 declare @begin_date datetime,@end_date datetime 
 select @begin_date =  '20070203 8:00 ',@end_date =  '20070201 9:00 '   
 select dbo.f_e_get_datediff(@begin_date,@end_date)   
 /*--结果 
 ---------------------- 
 -1/23:00:00   
 (所影响的行数为 1 行)   
 */     
------解决方案--------------------datediff函数