在数据库中,农历应该使用啥数据类型存储

农历的闰月可能出现在所有月份,但前后几百年内都没有闰腊月的情况:在数据库中,农历应该使用啥数据类型存储

农历日范围是初一到三十,大小月根据月相判断。农历年正确的记录方式应该是公元XXXX年+干支纪年,如,今年是乙未年,同时农历月、日也有干支纪年,当然,这个也可以拿公式计算。所以,记录农历日期需要:月一共有24种不同值日一共有30种不同值年份假设按照1000年计算,一共需要10+5+5 bit,也就是20 bit数据,约3字节,在32位平台上,用一个标准的int就可以保存。至于怎么存储闰月,可以0表示正月,2表示二月,4表示三月……22表示腊月,1表示闰正月,3表示闰二月……(这样还可以方便排序)参见:https://zh.wikipedia.org/zh-cn/%E8%BE%B2%E6%9B%86方法很多,自己定义一套规则就是了,或者写一套百年内的农历公历转换也是可以实现的。
■网友
泻药。可以存农历对应的公历的Date。这样也可以排序,还可以方便的知道公历日期。想知道近几日过生日,按这个字段就可以了。想知道农历的话,做一个转换。或者再加一个varchar字段存汉字六月初五 ,腊月廿二等等
■网友
【在数据库中,农历应该使用啥数据类型存储】 直接存储农历日期,外加一个属性用来标志是否是闰月


    推荐阅读