2015-08-16 79 views
-1

我在保存系統日期時遇到問題。SQL日期時間溢出。 Vb.net

在我的表我有一列date (datetime)

但我在我的項目獲得了「SQL日期時間溢出」​​錯誤。

這是我輸入我怎麼我的數據

Dim today As System.DateTime 

Dim cmdAddTransaction As New SqlCommand("INSERT INTO [Scanner].[dbo].[Transaction]([ID], [Name], [Description], [Date]) VALUES(@ID, @Name, @Description, @Date)", Connection) 
cmdAddTransaction.CommandType = CommandType.Text 

cmdAddTransaction.Parameters.AddWithValue("@ID", frm_main.txtbox_id.Text) 
cmdAddTransaction.Parameters.AddWithValue("@Name", txtbox_Fname.Text) 
cmdAddTransaction.Parameters.AddWithValue("@Description", "Edit Account") 
cmdAddTransaction.Parameters.AddWithValue("@Date", today) 

cmdAddTransaction.ExecuteNonQuery() 

MsgBox("User Successfully Updated") 

但正如我說得到一個錯誤。可以請別人幫我我想要日期格式如mmm/dd/yyyy,如果可能的話。

+3

爲什麼你使用varchar(max)DataType作爲日期列,使用DateTime數據類型 – HaveNoDisplayName

+0

這會解決嗎?它是以mmm/dd/yyyy格式表示的? @HaveNoDisplayName –

+0

@HaveNoDisplayName仍然得到錯誤 –

回答

1

sql server的Datetime數據類型有效的日期範圍在January 1st 1753December 31th 9999之間。

在您的代碼中,您不會初始化today變量。這意味着它的價值是January 1st 0001。明確的方式在January 1st 1753之前。

基於變量的名稱,我想它應該是今天的日期,所以當你聲明變量時你應該寫一些類似Dim today as System.DateTime = DateTime.Today的東西。

+0

我宣佈它,但是當我包含'= datetime.today'它現在工作正常。 –

+0

最後一個問題。如何在沒有時間的情況下使其成爲mmm/dd/yyyy格式? –

+1

@ KristaleGenessaOrdiz-Magallo:將列定義爲數據類型「DATE」 - 僅限日期,不包含時間部分。另外:**不要調用你的列**'date' - 這是一個T-SQL保留關鍵字 - 使用**更有意義的**名稱,如'OrderDate','TransactionDate','VisitDate'或其他只是'日期'...... –