.NET DateTime到SqlDateTime转换如何实现?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (10)

在将.NET DateTime(默认为(DateTime)时)转换为SqlDateTime时,我应该始终检查.NET日期是否在SqlDateTime.MinValue和SqlDateTime.MaxValue之间[或者]是否有一种很好的方法来执行此操作。

提问于
用户回答回答于

日期实际上可能超出该范围吗?它来自用户输入吗?如果对这些问题中的任何一个的答案都是肯定的,那么你应该经常检查 - 否则你会让应用程序容易出错。

可以格式化日期以便轻松包含在SQL语句中:

var sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss");
用户回答回答于

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

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

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

扫码关注云+社区