.NET DateTime到SqlDateTime转换

Sre*_*har 50 .net c# datetime sqldatetime

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

Win*_*ith 93

日期是否有可能超出该范围?它来自用户输入吗?如果这两个问题的答案都是肯定的,那么你应该经常检查 - 否则你的应用程序容易出错.

您可以非常轻松地格式化日期以包含在SQL语句中:

var sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss");
Run Code Online (Sandbox Code Playgroud)

  • @Winston:你*不应该*将日期格式化为包含在SQL语句中的字符串.使用参数化SQL代替强类型参数. (16认同)
  • 我同意卢克的观点.如果你出生在本月"桌子"的"用户",在"下降"年份怎么办?(说真的,卢克说的话) (6认同)
  • Rob:使用.NET DateTime对象不可能,因为格式直接从数值转换. (4认同)
  • @Sam:除了Rob上面提到的安全问题之外,`yyyy-MM-dd`格式并不完全与文化无关.更多细节:http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/16/bad-habits-to-kick-mishandling-date-range-queries.aspx (2认同)