我在中使用了SQL语句,其中输入了以下日期时间{ts '9999-12-31 23:59:59'}作为无限有效性,但当我试图通过服务器响应SqlConnection & SqlCommand执行此操作时,该日期时间转换超出了范围.有什么办法可以不出错的吗?
提前谢谢你
发布于 2015-01-22 09:46:28
为了做到这一点,我认为您应该使用SqlDateTime.MaxValue。
来源:https://msdn.microsoft.com/en-us/library/system.data.sqltypes.sqldatetime.maxvalue(v=vs.110).aspx
另一种方法是在SQL中声明此变量为可选变量,并在其中分配日期时间。THis方式--您不需要担心框架的更改或其他任何事情。
ALTER PROCEDURE [dbo].[YourProcedure]
@Date datetime = '9999-12-31 23:59:59';这样,无论何时,只要你不实际传递价值,它就会像你想要的一样,没有问题。
发布于 2015-01-22 09:53:44
Server值的最大值为9999-12-31 23:59:59.997 -注意它以7结尾!
此代码工作良好;
declare @MaxDateTime datetime; set @MaxDateTime = '9999-12-31 23:59:59.997'此代码没有;
declare @MaxDateTime datetime; set @MaxDateTime = '9999-12-31 23:59:59.999'如果您想知道最大值以7结尾的原因,那是因为Server内部存储DateTime值的方式。
希望这能帮上忙
里斯
https://stackoverflow.com/questions/28085460
复制相似问题