C# 无限期DateTime到SqlDateTime
我在SQLServerManagementStudio中使用了SQL语句,在那里我输入了以下日期时间{ts'9999-12-31 23:59:59'}作为无限有效性,但当我尝试通过SQLSconnection&SqlCommand(服务器响应)执行此操作时,我发现此日期时间转换超出范围。。。有没有办法不出错地得到这个C# 无限期DateTime到SqlDateTime,c#,sql,sql-server,datetime,C#,Sql,Sql Server,Datetime,我在SQLServerManagementStudio中使用了SQL语句,在那里我输入了以下日期时间{ts'9999-12-31 23:59:59'}作为无限有效性,但当我尝试通过SQLSconnection&SqlCommand(服务器响应)执行此操作时,我发现此日期时间转换超出范围。。。有没有办法不出错地得到这个 提前非常感谢您我认为您应该使用SqlDateTime.MaxValue来实现这一点 资料来源: 另一种方法是在SQL中将此变量声明为可选变量,并在其中分配日期时间。这样,您就不需要
提前非常感谢您我认为您应该使用
SqlDateTime.MaxValue
来实现这一点
资料来源:
另一种方法是在SQL中将此变量声明为可选变量,并在其中分配日期时间。这样,您就不需要担心框架更改或其他任何事情
ALTER PROCEDURE [dbo].[YourProcedure]
@Date datetime = '9999-12-31 23:59:59';
通过这种方式,无论何时您实际上没有传递值,它都将是您想要的,不会出现任何问题。我认为您应该使用
SqlDateTime.MaxValue
这样做
资料来源:
另一种方法是在SQL中将此变量声明为可选变量,并在其中分配日期时间。这样,您就不需要担心框架更改或其他任何事情
ALTER PROCEDURE [dbo].[YourProcedure]
@Date datetime = '9999-12-31 23:59:59';
通过这种方式,只要您没有实际传递该值,它就会按照您的要求毫无问题地传递。SQL 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结尾,那是因为SQL Server在内部存储日期时间值的方式
希望这有帮助
RhysSQL 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结尾,那是因为SQL Server在内部存储日期时间值的方式
希望这有帮助
Rhys为什么不在“无限”的情况下使用
NULL
?实际上这不是我的想法,它是很久以前开发的,在所有其他过程中都不匹配--为什么不在“无限”的情况下使用NULL
?实际上这不是我的想法,它是很久以前开发的,在所有其他流程中都不匹配-非常感谢,这听起来非常棒,我会尽快检查它!非常感谢,这听起来很不错,我会尽快检查的!