日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

sql server中如何計算農歷

瀏覽:324日期:2023-11-03 14:28:44

1、建一表,放初始化資料

因為農歷的日期,是由天文學家推算出來的,到現在只有到2049年的,以后的有了還可以加入! CREATE TABLE SolarData ( yearId int not null, data char(7) not null, dataInt int not null )

2、插入數據

INSERT INTO SolarData SELECT 1900,'0x04bd8',19416 UNION ALL SELECT 1901,'0x04ae0',19168 UNION ALL SELECT 1902,'0x0a570',42352 UNION ALL SELECT 1903,'0x054d5',21717 UNION ALL SELECT 1904,'0x0d260',53856 UNION ALL SELECT 1905,'0x0d950',55632 UNION ALL SELECT 1906,'0x16554',91476 UNION ALL SELECT 1907,'0x056a0',22176 UNION ALL SELECT 1908,'0x09ad0',39632 UNION ALL SELECT 1909,'0x055d2',21970 UNION ALL SELECT 1910,'0x04ae0',19168 UNION ALL SELECT 1911,'0x0a5b6',42422 UNION ALL SELECT 1912,'0x0a4d0',42192 UNION ALL SELECT 1913,'0x0d250',53840 UNION ALL SELECT 1914,'0x1d255',119381 UNION ALL SELECT 1915,'0x0b540',46400 UNION ALL SELECT 1916,'0x0d6a0',54944 UNION ALL SELECT 1917,'0x0ada2',44450 UNION ALL SELECT 1918,'0x095b0',38320 UNION ALL SELECT 1919,'0x14977',84343 UNION ALL SELECT 1920,'0x04970',18800 UNION ALL SELECT 1921,'0x0a4b0',42160 UNION ALL SELECT 1922,'0x0b4b5',46261 UNION ALL SELECT 1923,'0x06a50',27216 UNION ALL SELECT 1924,'0x06d40',27968 UNION ALL SELECT 1925,'0x1ab54',109396 UNION ALL SELECT 1926,'0x02b60',11104 UNION ALL SELECT 1927,'0x09570',38256 UNION ALL SELECT 1928,'0x052f2',21234 UNION ALL SELECT 1929,'0x04970',18800 UNION ALL SELECT 1930,'0x06566',25958 UNION ALL SELECT 1931,'0x0d4a0',54432 UNION ALL SELECT 1932,'0x0ea50',59984 UNION ALL SELECT 1933,'0x06e95',28309 UNION ALL SELECT 1934,'0x05ad0',23248 UNION ALL SELECT 1935,'0x02b60',11104 UNION ALL SELECT 1936,'0x186e3',100067 UNION ALL SELECT 1937,'0x092e0',37600 UNION ALL SELECT 1938,'0x1c8d7',116951 UNION ALL SELECT 1939,'0x0c950',51536 UNION ALL SELECT 1940,'0x0d4a0',54432 UNION ALL SELECT 1941,'0x1d8a6',120998 UNION ALL SELECT 1942,'0x0b550',46416 UNION ALL SELECT 1943,'0x056a0',22176 UNION ALL SELECT 1944,'0x1a5b4',107956 UNION ALL SELECT 1945,'0x025d0',9680 UNION ALL SELECT 1946,'0x092d0',37584 UNION ALL SELECT 1947,'0x0d2b2',53938 UNION ALL SELECT 1948,'0x0a950',43344 UNION ALL SELECT 1949,'0x0b557',46423 UNION ALL SELECT 1950,'0x06ca0',27808 UNION ALL SELECT 1951,'0x0b550',46416 UNION ALL SELECT 1952,'0x15355',86869 UNION ALL SELECT 1953,'0x04da0',19872 UNION ALL SELECT 1954,'0x0a5d0',42448 UNION ALL SELECT 1955,'0x14573',83315 UNION ALL SELECT 1956,'0x052d0',21200 UNION ALL SELECT 1957,'0x0a9a8',43432 UNION ALL SELECT 1958,'0x0e950',59728 UNION ALL SELECT 1959,'0x06aa0',27296 UNION ALL SELECT 1960,'0x0aea6',44710 UNION ALL SELECT 1961,'0x0ab50',43856 UNION ALL SELECT 1962,'0x04b60',19296 UNION ALL SELECT 1963,'0x0aae4',43748 UNION ALL SELECT 1964,'0x0a570',42352 UNION ALL SELECT 1965,'0x05260',21088 UNION ALL SELECT 1966,'0x0f263',62051 UNION ALL SELECT 1967,'0x0d950',55632 UNION ALL SELECT 1968,'0x05b57',23383 UNION ALL SELECT 1969,'0x056a0',22176 UNION ALL SELECT 1970,'0x096d0',38608 UNION ALL SELECT 1971,'0x04dd5',19925 UNION ALL SELECT 1972,'0x04ad0',19152 UNION ALL SELECT 1973,'0x0a4d0',42192 UNION ALL SELECT 1974,'0x0d4d4',54484 UNION ALL SELECT 1975,'0x0d250',53840 UNION ALL SELECT 1976,'0x0d558',54616 UNION ALL SELECT 1977,'0x0b540',46400 UNION ALL SELECT 1978,'0x0b5a0',46496 UNION ALL SELECT 1979,'0x195a6',103846 UNION ALL SELECT 1980,'0x095b0',38320 UNION ALL SELECT 1981,'0x049b0',18864 UNION ALL SELECT 1982,'0x0a974',43380 UNION ALL SELECT 1983,'0x0a4b0',42160 UNION ALL SELECT 1984,'0x0b27a',45690 UNION ALL SELECT 1985,'0x06a50',27216 UNION ALL SELECT 1986,'0x06d40',27968 UNION ALL SELECT 1987,'0x0af46',44870 UNION ALL SELECT 1988,'0x0ab60',43872 UNION ALL SELECT 1989,'0x09570',38256 UNION ALL SELECT 1990,'0x04af5',19189 UNION ALL SELECT 1991,'0x04970',18800 UNION ALL SELECT 1992,'0x064b0',25776 UNION ALL SELECT 1993,'0x074a3',29859 UNION ALL SELECT 1994,'0x0ea50',59984 UNION ALL SELECT 1995,'0x06b58',27480 UNION ALL SELECT 1996,'0x055c0',21952 UNION ALL SELECT 1997,'0x0ab60',43872 UNION ALL SELECT 1998,'0x096d5',38613 UNION ALL SELECT 1999,'0x092e0',37600 UNION ALL SELECT 2000,'0x0c960',51552 UNION ALL SELECT 2001,'0x0d954',55636 UNION ALL SELECT 2002,'0x0d4a0',54432 UNION ALL SELECT 2003,'0x0da50',55888 UNION ALL SELECT 2004,'0x07552',30034 UNION ALL SELECT 2005,'0x056a0',22176 UNION ALL SELECT 2006,'0x0abb7',43959 UNION ALL SELECT 2007,'0x025d0',9680 UNION ALL SELECT 2008,'0x092d0',37584 UNION ALL SELECT 2009,'0x0cab5',51893 UNION ALL SELECT 2010,'0x0a950',43344 UNION ALL SELECT 2011,'0x0b4a0',46240 UNION ALL SELECT 2012,'0x0baa4',47780 UNION ALL SELECT 2013,'0x0ad50',44368 UNION ALL SELECT 2014,'0x055d9',21977 UNION ALL SELECT 2015,'0x04ba0',19360 UNION ALL SELECT 2016,'0x0a5b0',42416 UNION ALL SELECT 2017,'0x15176',86390 UNION ALL SELECT 2018,'0x052b0',21168 UNION ALL SELECT 2019,'0x0a930',43312 UNION ALL SELECT 2020,'0x07954',31060 UNION ALL SELECT 2021,'0x06aa0',27296 UNION ALL SELECT 2022,'0x0ad50',44368 UNION ALL SELECT 2023,'0x05b52',23378 UNION ALL SELECT 2024,'0x04b60',19296 UNION ALL SELECT 2025,'0x0a6e6',42726 UNION ALL SELECT 2026,'0x0a4e0',42208 UNION ALL SELECT 2027,'0x0d260',53856 UNION ALL SELECT 2028,'0x0ea65',60005 UNION ALL SELECT 2029,'0x0d530',54576 UNION ALL SELECT 2030,'0x05aa0',23200 UNION ALL SELECT 2031,'0x076a3',30371 UNION ALL SELECT 2032,'0x096d0',38608 UNION ALL SELECT 2033,'0x04bd7',19415 UNION ALL SELECT 2034,'0x04ad0',19152 UNION ALL SELECT 2035,'0x0a4d0',42192 UNION ALL SELECT 2036,'0x1d0b6',118966 UNION ALL SELECT 2037,'0x0d250',53840 UNION ALL SELECT 2038,'0x0d520',54560 UNION ALL SELECT 2039,'0x0dd45',56645 UNION ALL SELECT 2040,'0x0b5a0',46496 UNION ALL SELECT 2041,'0x056d0',22224 UNION ALL SELECT 2042,'0x055b2',21938 UNION ALL SELECT 2043,'0x049b0',18864 UNION ALL SELECT 2044,'0x0a577',42359 UNION ALL SELECT 2045,'0x0a4b0',42160 UNION ALL SELECT 2046,'0x0aa50',43600 UNION ALL SELECT 2047,'0x1b255',111189 UNION ALL SELECT 2048,'0x06d20',27936 UNION ALL SELECT 2049,'0x0ada0',44448

3、創建函數

該函數用來讀取農歷日期

CREATE FUNCTION fn_GetLunar(@solarDay DATETIME) RETURNS datetime

AS BEGIN DECLARE @solData int DECLARE @offset int DECLARE @iLunar int DECLARE @i INT DECLARE @j INT DECLARE @yDays int DECLARE @mDays int DECLARE @mLeap int DECLARE @mLeapNum int DECLARE @bLeap smallint DECLARE @temp int

DECLARE @YEAR INT DECLARE @MONTH INT DECLARE @DAY INT

DECLARE @OUTPUTDATE DATETIME

--保證傳進來的日期是不帶時間SET @solarDay=cast(@solarDay AS char(10)) SET @offset=CAST(@solarDay-'1900-01-30' AS INT)

--確定農歷年開始SET @i=1900 --SET @offset=@solDataWHILE @i<2050 AND @offset>0 BEGIN SET @yDays=348 SET @mLeapNum=0 SELECT @iLunar=dataInt FROM SolarData WHERE yearId=@i

--傳回農歷年的總天數SET @j=32768 WHILE @j>8 BEGIN IF @iLunar & @j >0 SET @yDays=@yDays+1 SET @j=@j/2 END

--傳回農歷年閏哪個月 1-12 , 沒閏傳回 0SET @mLeap = @iLunar & 15

--傳回農歷年閏月的天數 ,加在年的總天數上IF @mLeap > 0 BEGIN IF @iLunar & 65536 > 0 SET @mLeapNum=30 ELSE SET @mLeapNum=29

SET @yDays=@yDays+@mLeapNum END

SET @offset=@offset-@yDays SET @i=@i+1 END

IF @offset <= 0 BEGIN SET @offset=@offset+@yDays SET @i=@i-1 END --確定農歷年結束SET @YEAR=@i

--確定農歷月開始SET @i = 1 SELECT @iLunar=dataInt FROM SolarData WHERE yearId=@YEAR

--判斷那個月是潤月SET @mLeap = @iLunar & 15 SET @bLeap = 0

WHILE @i < 13 AND @offset > 0 BEGIN --判斷潤月SET @mDays=0 IF (@mLeap > 0 AND @i = (@mLeap+1) AND @bLeap=0) BEGIN --是潤月SET @i=@i-1 SET @bLeap=1 --傳回農歷年閏月的天數IF @iLunar & 65536 > 0 SET @mDays = 30 ELSE SET @mDays = 29 END ELSE --不是潤月BEGIN SET @j=1 SET @temp = 65536 WHILE @j<=@i BEGIN SET @temp=@temp/2 SET @j=@j+1 END

IF @iLunar & @temp > 0 SET @mDays = 30 ELSE SET @mDays = 29 END

--解除閏月 IF @bLeap=1 AND @i= (@mLeap+1) SET @bLeap=0

SET @offset=@offset-@mDays SET @i=@i+1 END

IF @offset <= 0 BEGIN SET @offset=@offset+@mDays SET @i=@i-1 END

--確定農歷月結束SET @MONTH=@i

--確定農歷日結束 SET @DAY=@offset

SET @OUTPUTDATE=CAST((CAST(@YEAR AS VARCHAR(4))+'-'+CAST(@MONTH AS VARCHAR(2))+'-'+CAST(@DAY AS VARCHAR(2))) AS DATETIME) RETURN @OUTPUTDATE END

4、調用方法

select dbo.fn_GetLunar(getdate()) 或 select dbo.fn_GetLunar('2004-4-13')

標簽: Sql Server 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
一二三区精品| 欧美激情福利| 国产中文字幕一区二区三区| 美女网站一区| 99精品在线免费在线观看| 国产精品13p| 欧美有码在线| 国产福利亚洲| 欧美激情麻豆| 日韩在线中文| 欧美在线亚洲综合一区| 六月丁香综合| 日韩国产欧美视频| 国产精品久久| 日本а中文在线天堂| 粉嫩av一区二区三区四区五区| 精品国产三区在线| av在线最新| 亚洲在线观看| 国产日韩视频在线| 福利一区和二区| 久久狠狠久久| 久久久久99| 久久99伊人| 国产福利资源一区| 久久久夜夜夜| 日韩午夜视频在线| 国产一区二区三区不卡av| 日韩国产欧美| 亚洲自拍另类| 国产精品欧美日韩一区| 欧美成人久久| 日本aⅴ精品一区二区三区| 欧美日韩亚洲一区在线观看| 欧美一区成人| 亚洲天堂成人| 亚洲综合专区| 精品在线网站观看| 免费视频一区三区| 久久久久九九精品影院| 久久午夜影视| 奇米777国产一区国产二区| 精品深夜福利视频| 欧美午夜不卡| 成人精品动漫一区二区三区| 国产一区欧美| 精品免费视频| 亚洲一区日韩在线| 精品视频久久| 日韩制服丝袜先锋影音| 日韩精品2区| 国产主播一区| 成人在线视频免费看| 欧美日韩国产免费观看| 欧美日韩国产观看视频| 91成人精品在线| 麻豆精品久久| 欧美日韩亚洲一区二区三区在线| 免费日韩av| 久久精品主播| 日韩免费在线| 精品中文在线| 久久一区亚洲| 国产福利一区二区三区在线播放| 综合激情网站| 日本va欧美va瓶| 不卡一区综合视频| 久久国产日韩| 欧美一区二区三区激情视频| 久久国产电影| 精品中文一区| 免费久久精品| 蜜乳av另类精品一区二区| 9久re热视频在线精品| 久久中文字幕二区| 欧美精品一区二区久久| 欧美日韩少妇| 丝瓜av网站精品一区二区| 久久国产精品99国产| 亚洲九九精品| 日本特黄久久久高潮| 中文字幕一区二区av| 日本不卡视频在线| 国产精品伊人| 福利视频一区| 狠狠干成人综合网| 亚洲精品高潮| 免费视频一区二区三区在线观看| 免费视频一区二区三区在线观看| 国产不卡精品| 亚洲深爱激情| 国产精品第十页| 国产一区清纯| 亚洲精品乱码久久久久久蜜桃麻豆 | 国产农村妇女精品一二区| 中文一区在线| 国产乱人伦精品一区| www成人在线视频| 免费一级片91| 青青青免费在线视频| 欧美一级一区| 欧美搞黄网站| 国产成人免费av一区二区午夜| 水蜜桃久久夜色精品一区的特点| а√天堂8资源中文在线| 最新亚洲激情| 国产成人精品免费视| 国产精品欧美一区二区三区不卡| 蜜桃久久av一区| 激情欧美丁香| 91tv亚洲精品香蕉国产一区| 国产日韩高清一区二区三区在线 | 久久亚洲电影| 欧美不卡高清一区二区三区| 亚洲免费在线| 97精品国产一区二区三区| 久久大逼视频| 精品久久免费| 久久99久久久精品欧美| 欧美日韩国产一区二区三区不卡 | 精品欠久久久中文字幕加勒比| 人在线成免费视频| 卡一精品卡二卡三网站乱码| 激情婷婷亚洲| 日韩一区二区三区精品视频第3页| 久久精品国产网站| 日韩三级精品| 999国产精品| 欧美激情另类| 你懂的亚洲视频| 日韩三级一区| 视频一区二区国产| 日韩精品一二三四| 欧美日韩中文一区二区| 国产成人免费精品| 欧美aa在线视频| 国产亚洲精aa在线看| 欧美极品一区二区三区| 亚洲毛片在线| 欧美日韩精品一本二本三本| 青青青免费在线视频| 精品视频97| 三上亚洲一区二区| 国产suv精品一区| av中文资源在线资源免费观看| 久久99国产精品视频| 国产极品嫩模在线观看91精品| 日韩高清不卡在线| 国产精品亚洲一区二区在线观看| 青草国产精品| 国产精品久久久久久av公交车| 国产精品视频首页| 加勒比视频一区| 免费在线观看一区二区三区| 蜜臀久久久99精品久久久久久| 激情综合网五月| 亚洲国产不卡| 亚洲一区二区三区无吗| 亚洲午夜电影| 国产日韩欧美在线播放不卡| 美日韩一区二区三区| 国产成人a视频高清在线观看| 蜜臀国产一区| 日韩美女国产精品| 精品一区二区男人吃奶| 麻豆视频在线观看免费网站黄| 久久精品播放| 国产精品久久久久久久久久白浆 | 精品国产成人| 日韩深夜视频| 国产精品普通话对白| 亚洲精品在线二区| 日韩精品一区二区三区中文 | 另类激情亚洲| 国产乱码精品| yellow在线观看网址| 日韩精品欧美精品| 国产精品99视频| 日韩精品一二三四| 欧美精品影院| 欧美成人亚洲| 麻豆一区在线| 另类国产ts人妖高潮视频| 精品国产乱码久久久| 视频一区日韩| 久久亚洲在线| 韩日一区二区| 亚洲精品影视| 亚洲影院天堂中文av色| 日韩电影免费网址| 国产欧美亚洲精品a| 最新国产拍偷乱拍精品| 91麻豆精品| 欧美视频二区| 999精品色在线播放| 欧美另类中文字幕| 亚洲欧美高清| 亚洲精品字幕| 日韩精品一二区| 国产精品97|