当字符串进入smalldatetime时算术溢出错误

时间:2012-11-15 18:48:45

标签: c# sql

您好我有一个程序使用DateTime.Now.ToString()来获取时间,然后将其插入到smalldatetime的coloum中。这工作之前,但现在我得到这个错误。

“将表达式转换为数据类型datetime的算术溢出错误。 声明已经终止。“

我做错了什么?

这是我的SQL语句

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

2 个答案:

答案 0 :(得分:2)

@Date_Sent_On参数的类型应为DateTime而不是string,您应该将DateTime.Now作为其值。

使用DateTime.Now.ToString()是非常不可靠的,因为使用ToString()格式化日期取决于文化 - 它会产生不同的结果,具体取决于计算机的区域设置和应用程序中的区域设置。

答案 1 :(得分:-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等。