 <p><code>HasColumnType("datetime")</code> specifies the column type, not the temporary parameter types that are used in the SQL statements. You can't control those and it's not necessary. If you have a .NET <code>DateTime</code> in your application with some decimal places filled and want to store that in a <code>datetime</code> type in SQL Server the value will (and can only) be stored as a rounded value. It doesn't matter if the rounding happens on client side before the SQL is sent to the database server or if the rounding happens on the database server itself. The result will be the same: A rounded stored value with a loss of precision.</p>