DATETIME & INTEGER與DATE & INTEGER之間的關係是否一致?爲什麼可以從DATETIME中減去整數而不是DATE類型
此執行罰款:
DECLARE @Yesterday DATETIME = GETDATE();
SELECT @Yesterday-1;
至於做這個的:
DECLARE @Yesterday DATE = GETDATE();
SELECT @Yesterday;
此錯誤:
DECLARE @Yesterday DATE = GETDATE();
SELECT @Yesterday-1;
我可以安全地從一個datetime
而不是減去一個integer
類型date
。
這種行爲的原因是什麼?
從'int'到'datetime'的隱式轉換追溯到到Sybase天。我猜想對於新的數據類型,他們決定不把它作爲錯誤的可能原因(意外地將整數值插入到「datetime」列中,而不是提醒問題)。一個相關的連接項請求抱怨隱式轉換[爲更強大的開發添加可選檢查](http://connect.microsoft.com/SQL/feedback/ViewFeedback.aspx?FeedbackID=260762) – 2013-03-22 12:10:16
@MartinSmith提高 - 感謝您的信息 – whytheq 2013-03-22 12:19:02
@MartinSmith - 你投票結束了嗎?誰做的沒有留下任何評論;很高興看到評論,因爲它可以修改OP – whytheq 2013-03-22 12:22:08