我試圖使用SQL查詢從SQL查詢從int值一樣31Year,的3個月,30天獲取DOB
1)第一個文本框中包含年如從定義值獲取DOB在3個不同的文本框:30
2)第二個文本框包含月份例如:03
3)第三個文本框包含當天的例如:30
所以我想從上面的值日期。 我的工作圍繞如下:
declare @Year int = 31,
@month int = 4,
@day int = 0
Declare @TempDate Datetime,@TempDayPart int,@TempYearPart int,@TempMonthPart int,@FinalDate datetime,@checkLeapYear int,@chkChkDay int
SET @TempDate =DATEADD(YEAR, [email protected],CONVERT(date, GETDATE(),103))
select @TempDate as yearcount
SET @TempDate = DATEADD(MONTH, [email protected] , @TempDate)
select @TempDate as monthcount
SET @TempDate = DATEADD(DAY, [email protected], @TempDate)
select @TempDate as FinalDate
此功能對於大多情況下工作正常,但它是不正確的二月的一個月,他的出生日期日比今天白天到
注度:對於檢查使用此鏈接http://www.calculator.net/age-calculator.html
1)問題日期:17-02-1986 [或使用任何更大的日期從二月的月從今天就像今天是16日,所以你可以採取17至28或29 FEB計算]
這是非標準的SQL。你正在使用哪個DBMS? –
在MS SQL服務器中,您可以使用[DATEFROMPARTS](https://docs.microsoft.com/zh-cn/sql/t-sql/functions/datefromparts-transact-sql)。 DATEFROMPARTS(年,月,日)它適用於MSSQ 2012及更高版本。 –