【问题标题】:C# Linq to Sql How to convert Datetime?C# Linq to Sql 如何转换日期时间?
【发布时间】:2017-09-23 10:05:34
【问题描述】:

我有一个 asp.net 网站。我正在使用 linq to sql。我将插入到 mssql 数据库中的行。但它不会转换为日期时间。我收到错误:

错误 - SqlDateTime 溢出。必须在 1753 年 1 月 1 日凌晨 12:00:00 到 12/31/9999 晚上 11:59:59

我的代码:

MyDataContext myData = new MyDataContext();
EVRBA evrbas = new EVRBA();
 string Mydate= DateTime.Today.ToString("dd-MM-yyyy");
 evrbas.EVRAKTARIH =Convert.ToDateTime(Mydate);
  try
        {
            myData.EVRBAs.InsertOnSubmit(evrbas);
            myData.SubmitChanges();
        }
        catch (Exception)
        {
            throw;
        }

【问题讨论】:

  • 将数据库中的 datetime 列更改为 datetime2
  • 您将DateTime 转换为string,然后将string 转换回DateTime,这是为了什么?并使用.ToString("MM/dd/yyyy") 而不是.ToString("dd-MM-yyyy")
  • @Tadej 我在写 evrbas.EVRAKTARIH=DateTime.Today.ToString("dd-MM-yyyy");然后我得到了错误。但是我在转换 adn 问题正在解决Convert.toDateTime(DateTime.Today.ToString("dd-MM-yyyy"));
  • @Tadej 为什么是MM/dd/yyyy?英国的计算机如何理解这一点?也许您应该提倡所有计算机都可以理解的东西,无论区域如何,即yyyy/MM/dd。或者,更好的是,.ToString("o")
  • 它返回了错误的日期值.. 是你的问题.. 没有转换日期时间值。

标签: c# asp.net sql-server linq datetime


【解决方案1】:

如果您在数据库中的列是 datetime 类型,那么这应该适合您。

MyDataContext myData = new MyDataContext();
EVRBA evrbas = new EVRBA();
evrbas.EVRAKTARIH =DateTime.Parse(DateTime.Now.ToString("o"));
try
{
      myData.EVRBAs.InsertOnSubmit(evrbas);
      myData.SubmitChanges();
}
catch (Exception)
{
      throw;
}

【讨论】:

  • 不幸的是我不工作。我收到错误:SqlDateTime 溢出。必须在 1753 年 1 月 1 日上午 12:00:00 到 9999 年 12 月 31 日晚上 11:59:59 之间
  • @EmreAslan 设置日期后 EVRAKTARIH 的值是多少?
  • @john "o" 格式是什么?我唯一知道的应该是"u" 或者"s"。 @Emre Aslan 不,你不工作,这就是你问问题的原因,哈哈 :)
  • 26.04.2017 10:27:42
  • @Tadej 就是所谓的round-trip date format (ISO 8601)。
【解决方案2】:

试试这个

 DateTime Mydate= DateTime.Now;

【讨论】:

  • 能否在变量中设置断点并检查日期时间是否可用?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多