C#DateTime默认值发布日期:01/01/0001 00:00:00

本文关键字:0001 日期 默认值 布日期 C#DateTime | 更新日期: 2023-09-27 17:58:25

我在将DateTime插入数据库时遇到问题,出现以下错误:

SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.

我知道SQL日期必须在1/1/1753 12:00:00 am和12/31/9999之间,但我的日期似乎仍然是01/01/0001 00:00:00。

我在web服务方法中定义了以下日期:

  [DataMember]
  public DateTime RecordTimeStamp { get; set; }

这在以下代码中用于添加到数据库中

  sqlComm.Parameters.Add("@RecordTimeStamp", SqlDbType.DateTime).Value = pCustomer.RecordTimeStamp;

此代码从代码为的aspx页面中获取其值

  DateTime now = DateTime.Now;
  pCustomer.RecordTimeStamp = now;

我正试图将当前日期插入数据库,但它似乎与默认日期相比没有变化。

C#DateTime默认值发布日期:01/01/0001 00:00:00

尝试更改属性

来自:

[DataMember]
public DateTime RecordTimeStamp { get; set; }

至:

[DataMember]
public DateTime? RecordTimeStamp { get; set; }

希望这能解决问题。发生的情况是DateTime是NOT NULL数据类型,它强制在那里放置一个默认值(01/01/0001),以确保提交非NULL日期。我不知道为什么它不接受更改后的值并抛出一个"超出范围"的异常。这是你可能想要进一步调查的事情。