首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无穷远DateTime到SqlDateTime

无穷远DateTime到SqlDateTime
EN

Stack Overflow用户
提问于 2015-01-22 09:44:29
回答 2查看 4.1K关注 0票数 1

我在中使用了SQL语句,其中输入了以下日期时间{ts '9999-12-31 23:59:59'}作为无限有效性,但当我试图通过服务器响应SqlConnection & SqlCommand执行此操作时,该日期时间转换超出了范围.有什么办法可以不出错的吗?

提前谢谢你

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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方式--您不需要担心框架的更改或其他任何事情。

代码语言:javascript
复制
ALTER PROCEDURE  [dbo].[YourProcedure]
@Date datetime = '9999-12-31 23:59:59';

这样,无论何时,只要你不实际传递价值,它就会像你想要的一样,没有问题。

票数 3
EN

Stack Overflow用户

发布于 2015-01-22 09:53:44

Server值的最大值为9999-12-31 23:59:59.997 -注意它以7结尾!

此代码工作良好;

代码语言:javascript
复制
declare @MaxDateTime datetime; set @MaxDateTime = '9999-12-31 23:59:59.997'

此代码没有;

代码语言:javascript
复制
declare @MaxDateTime datetime; set @MaxDateTime = '9999-12-31 23:59:59.999'

如果您想知道最大值以7结尾的原因,那是因为Server内部存储DateTime值的方式。

希望这能帮上忙

里斯

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28085460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档