在 MySQL 工作台中运行命令文本会返回 2023-04-09 11:37:05.508
以下代码,将其截断为:2023-04-09 11:37:05
。我想知道为什么?
列定义为datetime(3)
。
使用下面的示例代码重现:
var connection = new MySqlConnection(connectionString.ToString()); connection.Open(); const string commandText = @"SELECT logged_at FROM logs WHERE application_id = @id ORDER BY id DESC LIMIT 1"; var cmd = new MySqlCommand(commandText, connection); cmd.Parameters.Add("@id", MySqlDbType.Int32).Value = 3; var reader = cmd.ExecuteReader(); if (reader.Read()) { Console.WriteLine(reader["logged_at"].ToString()); } connection.Close();
P粉4209586922024-02-26 19:43:16
默认情况下,DateTime.ToString()
确实仅将 DateTime 提取到秒。这意味着您拥有的基础值更准确,但未打印。您可以简单地通过放置断点并观察调试应用程序的变量值来检查这一点。
要获得更详细的输出,您可以使用 自定义格式化程序例如:
DateTime dt = (DateTime)reader["logged_at"]; Console.WriteLine(dt.ToString("yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture));