首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SqlDateTime溢出异常

SqlDateTime溢出异常
EN

Stack Overflow用户
提问于 2008-10-28 16:52:31
回答 4查看 3K关注 0票数 1

我正在尝试只插入一个时间值,但得到以下错误

  • {"SqlDateTime溢出。必须在1/1/1753 12:00上午12:00至12/31/9999 11:59:59 PM."} System.Exception。

从前端开始,使用"TimeEdit“控件使用上下箭头选择时间。Server中的表将字段设置为smalldatetime。我只需要储存时间。我使用以下方法将数据返回到应用程序

选择id,转换(CHAR(5),timeFrom,8)作为timeFrom,转换(CHAR(5),timeTo,8)作为timeTo,其中id = @id和dayName =@工作日

我怎么才能只把时间浪费在桌子上?

根据Euardo和Chris的说法,我的解决方案是传递一个日期时间字符串,而不是只传递一个时间字符串。我按照时间格式使用"g“格式化了结果。

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-10-28 16:58:52

选择一个在范围内的日期(即,1/1/1970),并将其用于插入的所有内容。

票数 1
EN

Stack Overflow用户

发布于 2008-10-28 17:01:10

您可以将日期设置为1/1/1753是MSSQL中日期时间的最小日期值,然后添加要存储的小时。当然,每次需要得到值时,您都必须考虑这一点,但是您可以用一些助手来包装。或者您可以使用MSSQL 2008并使用新的时间数据类型。

票数 3
EN

Stack Overflow用户

发布于 2008-10-28 17:12:10

如果您只是在跟踪时间,请考虑将其存储在一个int中,作为与午夜之间的偏移量,无论您需要什么粒度(秒、分钟、小时、.)。然后,可以使用适当的TimeSpan?()方法将其转换为代码中的TimeSpan.From。相反,您可以使用TimeSpan.Total?如果需要的话。如果需要手动查询,可以编写一个SQL函数,将小时/分钟/秒转换为等效偏移量。

与使用日期时间和选择任意的一天相比,我更喜欢这样做,因为它使字段的用途更加清晰,从而减少了混乱。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/244029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档