2012-11-15 44 views
0

嗨我有一個程序使用DateTime.Now.ToString()來獲取時間,然後將它插入到smalldatetime的coloum中。這工作之前,但現在我得到這個錯誤。 「字符串進入smalldatetime時出現Artihmetic overflow錯誤

」算術溢出錯誤將表達式轉換爲數據類型datetime。 該語句已被終止。「

我在做什麼錯?

這是我的SQL語句

command.CommandText = @" INSERT INTO Mail1 (UserID, Subject, Feedback, Date_Sent_On) 
         VALUES (@UserID, @Subject, @Feedback, @Date_Sent_On)"; 
+0

爲什麼使用SMALLDATETIME? – nawfal

+0

將數據庫中的日期時間字段更改爲日期時間或日期 – MethodMan

回答

2

@Date_Sent_On參數應該是DateTime而不是string型的,你應該通過DateTime.Now作爲其值。

使用DateTime.Now.ToString()是非常不可靠的,因爲格式化日期ToString()取決於文化 - 它可以產生不同的結果,這取決於您的計算機的區域設置和應用程序中的文化設置。

+0

感謝您的幫助。 – user1804234

-1

你也可以使用

requestdatetime between '7/1/2011' and GETDATE() 

在SQL語句來獲得當前的日期。

我還發現它有用,有時使用這樣的事情:

SELECT 
    cast(datepart(mm, M.REquestdatetime) as varchar) + '/' 
    + cast(datepart(yy, M.REquestdatetime) as varchar) as [Day] 
FROM ... 

這給你在顯示結果爲MM-YYYY方面的靈活性等

相關問題