我正在尝试只插入一个时间值,但得到以下错误
从前端开始,使用"TimeEdit“控件使用上下箭头选择时间。Server中的表将字段设置为smalldatetime。我只需要储存时间。我使用以下方法将数据返回到应用程序
选择id,转换(CHAR(5),timeFrom,8)作为timeFrom,转换(CHAR(5),timeTo,8)作为timeTo,其中id = @id和dayName =@工作日
我怎么才能只把时间浪费在桌子上?
根据Euardo和Chris的说法,我的解决方案是传递一个日期时间字符串,而不是只传递一个时间字符串。我按照时间格式使用"g“格式化了结果。
谢谢
发布于 2008-10-28 16:58:52
选择一个在范围内的日期(即,1/1/1970),并将其用于插入的所有内容。
发布于 2008-10-28 17:01:10
您可以将日期设置为1/1/1753是MSSQL中日期时间的最小日期值,然后添加要存储的小时。当然,每次需要得到值时,您都必须考虑这一点,但是您可以用一些助手来包装。或者您可以使用MSSQL 2008并使用新的时间数据类型。
发布于 2008-10-28 17:12:10
如果您只是在跟踪时间,请考虑将其存储在一个int中,作为与午夜之间的偏移量,无论您需要什么粒度(秒、分钟、小时、.)。然后,可以使用适当的TimeSpan?()方法将其转换为代码中的TimeSpan.From。相反,您可以使用TimeSpan.Total?如果需要的话。如果需要手动查询,可以编写一个SQL函数,将小时/分钟/秒转换为等效偏移量。
与使用日期时间和选择任意的一天相比,我更喜欢这样做,因为它使字段的用途更加清晰,从而减少了混乱。
https://stackoverflow.com/questions/244029
复制相似问题