在转换日期时,方法'ToString'没有重载需要1个参数

时间:2015-10-27 15:06:49

标签: c# .net angularjs datetime

我正在尝试将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'类型。

非常感谢任何帮助。

5 个答案:

答案 0 :(得分:85)

您想使用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>";

答案 1 :(得分:4)

它会正常工作。

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

答案 2 :(得分:4)

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

此外,如果您可以在.cshtml中使用服务器端代码并​​按照以下方式管理此转换(例如):

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

答案 3 :(得分:3)

另一种方法是在“ myDate”变量后面添加问号。

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

答案 4 :(得分:2)

最直接的方法是编写:

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

添加?之后myDate将检查它是否不为null,并带有?您将处理变量为null的情况。