2015-08-16 37 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'或其他只是'日期'...... –