-
Notifications
You must be signed in to change notification settings - Fork 222
Closed
Description
SqlServer数据库,字段类型设置为datetime2,当传入参数值(参数名假设为 LastLockTime)为DateTime.Min时,会报“SqlDateTime溢出。 必须介于1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间。”。这是因为在构建参数时,将参数LastLockTime对应的数据库字段类型设置成了datetime。
当前解决方案是在TypeHandlers新增以下配置
<TypeHandler Name="DateTime2" Type="SmartSql.TypeHandlers.StringTypeHandler,SmartSql">
<Properties>
<Property Name="DbType" Value="DateTime2"/>
</Properties>
</TypeHandler>
然后在ParameterMap中设置TypeHandler
<ParameterMap Id="InitializeTablesParamMap">
<Parameter Property="lastLockTime" TypeHandler="Datetime2"/>
</ParameterMap>
可以在Parameter中新增DbType属性,直接配置数据库类型,无需再设置TypeHandler,例如:
<ParameterMap Id="InitializeTablesParamMap">
<Parameter Property="lastLockTime" DbType="Datetime2"/>
</ParameterMap>
Metadata
Metadata
Assignees
Labels
No labels