The conversion of a datetime2 data type to a datetime data type Error

asp.net-mvc, c#, datetime, entity-framework

Solution

The error is because you haven't actually set those values correctly, make sure you set them depending on your applications locale. (e.g. dd/mm/yyyy for `en-GB`, mm/dd/yyyy for `en-US`).

It also looks like your database has been set up to use a `datetime2` column and not a `datetime` column.

You can either:

A) Modify the database to change the type from `datetime2` to `datetime`

B) Change the types in your Model to be `datetime2`, by doing:

[Column(TypeName = "DateTime2")]
public DateTime StartTime { get; set; }

[Column(TypeName = "DateTime2")]
public DateTime EndTime { get; set; }

Problem

I have a controller: ``` [HttpPost] public ActionResult Create(Auction auction) { var db = new EbuyDataContext(); db.Auctions.Add(auction); db.SaveChanges(); return View(auction); } ``` A model: ``` public class Auction { public long Id { get; set; } public string Title { get; set; } public string Description { get; set; } public decimal StartPrice { get; set; } public decimal CurrentPrice { get; set; } public DateTime StartTime { get; set; } public DateTime EndTime { get; set; }} } ``` And a view: ``` @model Ebuy.Website.Models.Auction @using (Html.BeginForm()) { <p> //All the information fields... @Html.LabelFor(model => model.EndTime) @Html.EditorFor(model => model.EndTime) </p> } ``` When I try to run it I receive the error: The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value. The model-controller-view is from a book copied one-to-one. What is the format that I need to enter to the `EndTime` field so I won't have this error?

Original source