怎么利用sql查詢一個(gè)時(shí)間段內(nèi)年數(shù)?
要求:1、要判斷這個(gè)時(shí)間段內(nèi)的閏年
2.最后結(jié)果應(yīng)該是一個(gè)小數(shù)類(lèi)型的
declare @sdate datetime
declare @edate datetime
set @sdate = '2000-10-15'
set @edate = '2009-02-10'
select
year(dateadd(yy,num,@sdate)) dt ,
case when (year(dateadd(yy,num,@sdate)) % 400 = 0) or
(year(dateadd(yy,num,@sdate)) % 4 = 0 and year(dateadd(yy,num,@sdate)) % 100 <> 0)
then '潤(rùn)年' else '非潤(rùn)年' end [潤(rùn)年/非潤(rùn)年]
from
(select isnull((select count(1) from sysobjects where id<t.id),0) as num from sysobjects t) a
where
year(dateadd(yy,num,@sdate))<=year(@edate)
/*
dt 潤(rùn)年/非潤(rùn)年
----------- ------
2000 潤(rùn)年
2001 非潤(rùn)年
2002 非潤(rùn)年
2003 非潤(rùn)年
2004 潤(rùn)年
2005 非潤(rùn)年
2006 非潤(rùn)年
2007 非潤(rùn)年
2008 潤(rùn)年
2009 非潤(rùn)年
(所影響的行數(shù)為 10 行)
*/
在公歷(格里歷)紀(jì)年中,有閏日的年份叫閏年,一般年份365天,閏年為366天。由于地球繞太陽(yáng)運(yùn)行周期為365天5小時(shí)48分46秒(合365.24219天)即一回歸年,公歷把一年定為365天。所余下的時(shí)間約為四年累計(jì)一天,加在二月里,所以平常年份每年365天,二月為28天,閏年為366天,二月為29天。因此,每400年中有97個(gè)閏年,閏年在2月末增加一天,閏年366天。 閏年的計(jì)算方法:公元紀(jì)年的年數(shù)可以被四整除,即為閏年;被100整除而不能被400整除為平年;被100整除也可被400整除的為閏年。如2000年是閏年,而1900年不是。
在公歷(格里歷)紀(jì)年中,有閏日的年份叫閏年,一般年份365天,閏年為366天。由于地球繞太陽(yáng)運(yùn)行周期為365天5小時(shí)48分46秒(合365.24219天)即一回歸年,公歷把一年定為365天。所余下的時(shí)間約為四年累計(jì)一天,加在二月里,所以平常年份每年365天,二月為28天,閏年為366天,二月為29天。因此,每400年中有97個(gè)閏年,閏年在2月末增加一天,閏年366天。 閏年的計(jì)算方法:公元紀(jì)年的年數(shù)可以被四整除,即為閏年;被100整除而不能被400整除為平年;被100整除也可被400整除的為閏年。如2000年是閏年,而1900年不是。