您好我有一个程序使用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)";
答案 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
等。