【发布时间】:2019-03-23 02:20:04
【问题描述】:
我正在使用 C# 和 MySql。我有一个要求,我需要将 DateTime.MaxValue 保存到其中一列。
ADO.NET 代码为我提供了 DateTime.MaxValue 的以下值
12/31/9999 晚上 11:59:59
当我将它保存在 mysql 中时,我看到该 datetime(3) 列的值保存为:
0000-00-00 00:00:00.000
ADO.NET 代码示例
DateTime time = DateTime.MaxValue;
sqlCommand.Parameters.AddWithValue("Expires", time);
sqlCommand.ExecuteNonQuery();
该列的数据类型为 datetime(3)
我仍然无法弄清楚为什么 DateTime.MaxValue 被保存为 0000-00-00 00:00:00.000
对此有什么想法吗?
【问题讨论】:
-
您可能已经超过了 MySql 的最大日期时间值。您可以尝试将值直接保存在 SQL 中,看看会发生什么?
-
“零”值仅在日期值无效或超出范围时插入,
datetime数据类型默认支持DateTime.MaxValue。您是否尝试过为该参数显式设置MySqlDbType.DateTime? -
@TetsuyaYamamoto 我试图将 dbtype 设置为 DateTime,但没有抛出任何异常并将数据保存为 0000-00-00 00:00:00.000