【问题标题】:Conversion from string '31/08/2012' to date is not valid?从字符串 '31/08/2012' 到日期的转换无效?
【发布时间】:2012-11-09 08:28:55
【问题描述】:

我的网页中有来自我的 sql server 数据库的绑定日期。即

Convert(CHAR(10), date, 103).

2012 年 8 月 31 日。不是 2012 年 8 月 31 日 12:00:00。当我将此日期插入 sql Server 时,出现错误,例如从字符串 '31/08/2012' 到日期的转换无效?我正在使用 en-US 格式...而且我将 datetimeformat 设置为“dd/MM/yyyy”。首先,我使用的是 en-GB 格式。同样的错误来了。之后,我将 en-GB 更改为 en-US 格式。还是那个错误来了。如何纠正该错误?

【问题讨论】:

  • 如果对您有用,请不要忘记投票并将答案标记为已接受...

标签: asp.net sql-server datetime type-conversion


【解决方案1】:

您需要在代码隐藏文件中根据您的文化转换日期。

// 你输入日期的格式

      string format = "MM/dd/yyyy HH:mm:ss";

// 在这里给出你的文化

       CultureInfo c = new CultureInfo("en-US");

// txtDate.Text 是你的日期字段

       DateTime concatenatedDate = DateTime.ParseExact(txtDate.Text, format, c);

现在通过cs文件在查询或存储过程中传递这个concatenatedDate。 它肯定会为你工作。 干杯。

【讨论】:

    【解决方案2】:

    像这样将日期字符串转换为日期时间

    DateTime.ParseExact(dateTimeString, "dd/MM/yyyy", null).ToString("MM/dd/yyyy")
    

    比传递给数据库解决问题

    更多详情:DateTime.TryParseExact

    【讨论】:

      【解决方案3】:
      DateTime.TryParse(dateTimeString, out dateReturn);
      

      【讨论】:

        【解决方案4】:

        尝试以"yyyy/MM/dd" 格式插入日期。它会起作用的。

        【讨论】:

          猜你喜欢
          • 2011-12-18
          • 1970-01-01
          • 2015-03-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-03
          • 1970-01-01
          • 2019-04-06
          相关资源
          最近更新 更多