我有两个表:如何获取月日数从两个日期
AgeMilestones //Represents available timespans
Id int
Description varchar //(newborn, 1 month old, 2 month old, etc.)
NbrMonths int //(0, 1, 2, etc.)
NbrDays int //(0, 1, 2, etc.)
Child
Id int
DateOfBirth DateTime
我需要得到一个给定的孩子有目前年龄通过AgeMilestones。问题是,一个月可能有28天,30天或31天。因此,如果我将NbrMonths转换成几天,我可能偶尔会关闭几天。
是否有任何其他方式来做到这一点,使用现有的表结构会更准确?
编辑:
我要图什么agemilesstone对应的月份数/存在于孩子之间的时间日出生,今天(类似下面的东西)。我在情况下,一个时代的里程碑可能是3个月,15天,或5个月和7天得到绊倒了......
SET @Days = DateDiff(d,child.DateOfBirth, GetDate())
SET @Months = DateDiff(m,child.DateOfBirth, GetDate())
SELECT * FROM AgeMileStone WHERE NbrMonths < @Months AND NbrDays < @Days
问题的记录,如
AgeMilestone:
ID:4
描述: “5和1/2个月”
个月:5
天数:15
不要忘了,一个月能有2900天太。不是很经常,但它发生。我听说那天也有婴儿出生,但我没有证实这一点。 – 2010-09-23 18:04:21
你已经知道了,我没有得到你更新的问题。 – 2010-09-23 18:04:39
我想我知道你在说什么......你的意思是说,NbrDays实际上是抵消日,而不是自DOB以来的总天数,对吗? – 2010-09-23 18:06:29