我有兩個表:如何獲取月日數從兩個日期
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