首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >.NET DateTime到SqlDateTime的转换

.NET DateTime到SqlDateTime的转换
EN

Stack Overflow用户
提问于 2010-02-03 18:08:51
回答 6查看 119.5K关注 0票数 52

在将.NET DateTime (默认(DateTime))转换为SqlDateTime时,我是否应该始终检查.NET日期是否在SqlDateTime.MinValue和SqlDateTime.MaxValue之间,或者有没有好的方法这样做。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-02-03 18:22:38

有没有可能日期实际上在这个范围之外?它来自用户输入吗?如果这两个问题中的任何一个的答案是肯定的,那么你应该始终检查-否则你的应用程序很容易出错。

您可以很容易地将日期格式化以包含在SQL语句中:

代码语言:javascript
复制
var sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss");
票数 95
EN

Stack Overflow用户

发布于 2010-02-03 22:13:23

如果您正在检查DBNULL,那么将SQL Datetime转换为.NET DateTime应该不是问题。但是,在将.NET DateTime转换为有效的DateTime时可能会遇到问题。

SQL Server不识别早于1753年1月1日的日期。那一年,英国采用了公历。通常,检查DateTime.MinValue就足够了,但如果您怀疑数据可能早于18世纪,则需要进行另一次检查或使用不同的数据类型。(我经常想知道博物馆在他们的数据库中使用什么)

没有必要检查最大日期,SQL Server和.NET DateTime的最大日期都是12/31/9999。这可能是一个有效的业务规则,但不会造成问题。

票数 2
EN

Stack Overflow用户

发布于 2010-02-05 19:01:57

另外,请记住,时间的分辨率是不同的。

http://msdn.microsoft.com/en-us/library/system.data.sqltypes.sqldatetime.aspx

SQL one为3.33ms,.net one为100 ns。

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

https://stackoverflow.com/questions/2191120

复制
相关文章

相似问题

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