【问题标题】:c# time to sql date timec#时间到sql日期时间
【发布时间】:2018-01-06 23:17:58
【问题描述】:

在将记录插入数据库时​​,我无法将 c# 日期时间7/31/2017 3:13:49 PM 转换为 SQL 日期时间。

我正在使用

DateTime dt = DateTime.Parse("11/23/2010");
string toSqlDate= dt.ToString("yyyy-MM-dd HH:mm:ss");
DateTime finalDate = DateTime.Parse(toSqlDate);

但它给了我错误。

字符串未被识别为有效的日期时间。

【问题讨论】:

  • 你在使用什么 rdbms?
  • 如果你使用 sql server,日期时间是兼容的
  • 首先您解析不同格式的日期字符串,然后尝试解析格式字符串。查看DateTime.ParseExact的文档
  • @ZoharPeled 我正在使用 sql server 2014。

标签: c# sql sql-server datetime sql-server-2014


【解决方案1】:

.Net DateTime maps directly 到 SQL Server DateTime。这意味着您根本不需要担心显示格式,因为DateTime does not have a display format.
您需要做的就是将DateTime 结构的实例作为参数 传递给SqlCommand

SqlCommand.Parameters.Add("@DateTimeParam", SqlDbType.DateTime).Value = dt; 

额外阅读:How do I create a parameterized SQL query? Why Should I?

【讨论】:

    【解决方案2】:

    将其更改为年/月/日后,这会有所帮助!

    var sqlDate = finalDate.Date.ToString("yyyy-MM-dd HH:mm:ss");
    

    【讨论】:

      【解决方案3】:

      您的日期格式是“年-月-日”,而您的日期是“月/日/年”,这是不对的。更改您的日期格式或日期的格式。

      这应该可行:

      DateTime dt = DateTime.Parse("2010-11-23 00:00:00");
      string toSqlDate= dt.ToString("yyyy-MM-dd HH:mm:ss");
      

      【讨论】:

      • 我明白,但我想将值 7/22/2017 3:13:49 AM 插入到 sql 表中。这是什么格式。
      【解决方案4】:

      将查询更改为

      insert into table_name (column1) values ('" + dt.Value.ToString("yyyy-MM-dd") + "')
      

      【讨论】:

      • 其实我用的是linq to sql。
      【解决方案5】:

      尝试 DateTime.ParseExact 方法并指定适合您的日期格式,这里是 MSDN 中的示例(https://msdn.microsoft.com/fr-fr/library/w2sa9yss(v=vs.110).aspx):

      var dateString = "06/15/2008";
      var format = "d";
      try {
           var result = DateTime.ParseExact(dateString, format, 
           CultureInfo.InvariantCulture);
           Console.WriteLine("{0} converts to {1}.", dateString, 
           result.ToString());
           }
        catch (FormatException) 
        {
           Console.WriteLine("{0} is not in the correct format.", dateString);
        }
      

      【讨论】:

        猜你喜欢
        • 2019-09-06
        • 2018-09-07
        • 2013-04-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-21
        • 1970-01-01
        • 2016-04-02
        • 2016-09-19
        相关资源
        最近更新 更多