我在SQL Server Management Studio中使用了SQL语句,我在下一个日期时间输入了无穷大有效性{ts' 9999-12-31 23:59:59'}但是当我尝试做的时候这是通过SqlConnection& SqlCommand,服务器响应,这个日期时间转换超出范围...有没有办法得到这个没有错误?
提前非常感谢
答案 0 :(得分:3)
我认为您应该使用SqlDateTime.MaxValue
来执行此操作。
来源:https://msdn.microsoft.com/en-us/library/system.data.sqltypes.sqldatetime.maxvalue(v=vs.110).aspx
另一种方法是将SQL中的此变量声明为可选,并在那里指定日期时间。这样你就不必担心框架变化或任何事情。
ALTER PROCEDURE [dbo].[YourProcedure]
@Date datetime = '9999-12-31 23:59:59';
这种方式,只要你没有实际传递价值,它就会随心所欲。
答案 1 :(得分:1)
SQL Server DateTime值的最大值是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结尾,因为SQL Server在内部存储DateTime值的方式。
希望这有帮助,
里斯