无限日期时间到SqlDateTime

时间:2015-01-22 09:44:30

标签: c# sql sql-server datetime

我在SQL Server Management Studio中使用了SQL语句,我在下一个日期时间输入了无穷大有效性{ts' 9999-12-31 23:59:59'}但是当我尝试做的时候这是通过SqlConnection& SqlCommand,服务器响应,这个日期时间转换超出范围...有没有办法得到这个没有错误?

提前非常感谢

2 个答案:

答案 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值的方式。

希望这有帮助,

里斯