TIME(2) 列的值显示为额外的精度零,而查询 returns 只有 2
The value of TIME(2) column is shown with extra precision zeros while the query returns only 2
我正在 运行 使用以下代码创建一个简单的 sql 查询。在我的查询中,有一个名为 duration 的列,类型为 TIME(2)
。当我 运行 在我的 MySQL Workbench 上正常查询时 duration 的值正确显示只有2个精度点。但是当我使用如下所示的 SqlDataAdapter
填充我的 DataSet
时,此值在我的 DataGridView
:
上显示有 6 个额外的零
using (IDbConnection conn = dataFactory.GetDbConnection())
{
conn.ConnectionString = Common.Conf.ConnectionString;
MySqlDataAdapter daRunHistory = new MySqlDataAdapter();
MySqlCommand cmd = new MySqlCommand();
cmd.CommandText = "SELECT Name,Duration FROM MyTable;";
cmd.Connection = conn;
dsRunHistory = new DataSet();
daRunHistory.SelectCommand = cmd;
conn.Open();
daRunHistory.Fill(dsRunHistory);
conn.Close();
}
而且不只是 DataGridView
,零也在我的 DataSet
中。
我最终按如下方式更改查询以格式化我的时间:
SELECT Name, TIME_FORMAT(Duration, '%H:%i:%s') AS 'Duration'
FROM MyTable
我正在 运行 使用以下代码创建一个简单的 sql 查询。在我的查询中,有一个名为 duration 的列,类型为 TIME(2)
。当我 运行 在我的 MySQL Workbench 上正常查询时 duration 的值正确显示只有2个精度点。但是当我使用如下所示的 SqlDataAdapter
填充我的 DataSet
时,此值在我的 DataGridView
:
using (IDbConnection conn = dataFactory.GetDbConnection())
{
conn.ConnectionString = Common.Conf.ConnectionString;
MySqlDataAdapter daRunHistory = new MySqlDataAdapter();
MySqlCommand cmd = new MySqlCommand();
cmd.CommandText = "SELECT Name,Duration FROM MyTable;";
cmd.Connection = conn;
dsRunHistory = new DataSet();
daRunHistory.SelectCommand = cmd;
conn.Open();
daRunHistory.Fill(dsRunHistory);
conn.Close();
}
而且不只是 DataGridView
,零也在我的 DataSet
中。
我最终按如下方式更改查询以格式化我的时间:
SELECT Name, TIME_FORMAT(Duration, '%H:%i:%s') AS 'Duration'
FROM MyTable