Shr*_*ree 51 c# sql-server datetime
我不想验证txtBirthDate所以我想传入DateTime.MinValue数据库.
我的代码:
if (txtBirthDate.Text == string.Empty)
objinfo.BirthDate = DateTime.MinValue;
else
objinfo.BirthDate = DateTime.Parse(txtBirthDate.Text);
Run Code Online (Sandbox Code Playgroud)
DateTime.MinValue 返回 Date = {1/1/0001 12:00:00 AM}
我收到了一个SQL错误:
SqlDateTime溢出.必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间.
我支持它,但我不明白为什么 DateTime.MinValue返回无法在数据库中插入的无效日期时间.如何处理这种情况?
Jon*_*eet 81
基本上,不要DateTime.MinValue用来表示缺失值.你不能使用DateTime.MinValue在SQL Server DateTime字段,如SQL Server有1753年开始的最小值.
相反,将您的BirthDate属性设为Nullable<DateTime>(aka DateTime?),并null在没有值时将其设置为.还要确保您的数据库字段可以为空.然后你只需要确保它null最终成为NULL数据库中的值.具体如何,这取决于您的数据访问权限,您没有告诉我们任何相关信息.
San*_*r M 77
非常简单,避免使用DateTime.MinValue使用System.Data.SqlTypes.SqlDateTime.MinValue.
Ric*_*ker 10
嗯……获取 SQL 最小日期非常简单
DateTime sqlMinDateAsNetDateTime = System.Data.SqlTypes.SqlDateTime.MinValue.Value;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
114544 次 |
| 最近记录: |