Нет перегрузки для метода "ToString" принимает 1 аргумент при дате кастинга

Я пытаюсь сохранить дату из моего Angular ui-Datepicker в мою базу данных SQL. Дата находится в формате (10-27-2015 12:00 AM), но она не будет сохранена. Я попытался использовать следующее, чтобы преобразовать его в формат SQL DateTime:

    DateTime? myDate = form.dteStartDate;
    string sqlFormattedDate = myDate.ToString("yyyy-MM-dd HH:mm:ss");

Но я получаю сообщение об ошибке "Нет перегрузки для метода" ToString "принимает 1 аргумент. Поле в SQL - это тип" datetime ".

Любая помощь очень ценится.

Ответы

Ответ 1

Вы хотите использовать DateTime.ToString(format) не Nullable<DateTime>.ToString(no overload):

DateTime? myDate = form.dteStartDate;
string sqlFormattedDate = myDate.Value.ToString("yyyy-MM-dd HH:mm:ss");

Конечно, это не значит, что нет значения. Возможно, что-то вроде этого:

string sqlFormattedDate = myDate.HasValue 
    ? myDate.Value.ToString("yyyy-MM-dd HH:mm:ss")
    : "<not available>";

Ответ 2

 string sqlFormattedDate = ((DateTime)myDate).ToString("yyyy-MM-dd HH:mm:ss");

Также, если вы можете использовать серверный код в .cshtml и управлять этим литьем, как показано ниже (например):

   <label>Establish: @(((DateTime)Model.EstablishDate).ToString("yyyy-MM-dd"))</label>

Ответ 3

Все будет хорошо.

DateTime? strDate = form.dteStartDate;
strDate.Value.ToString("yyyy-MM-dd HH:mm tt");