我有表(测试),包含两个字段,如
dt_id(datatype-int)(主键),
dt(datatype-datetime)
我使用此SQL查询在datagridview中单独显示日期和时间。
string query = "select `test`.`dt_id`,`test`.`dt` as 'date', `test`.`dt` as 'time' from test";
我正在以下列格式显示日期和时间
dataGridView1.Columns["date"].DefaultCellStyle.Format = "dd/MM/yyyy";
dataGridView1.Columns["time"].DefaultCellStyle.Format = "hh:mm tt";
我有以下代码的更新按钮。
private void buttonUpdate_Click(object sender, EventArgs e)
{
MySqlCommandBuilder cb = new MySqlCommandBuilder(dataAdapter);
dataAdapter.Update(dataTable);
}
让我们说,datagridview显示以下数据
dt_id ----------日期----------时间
1 ----------- 15/08/1947 ----- 07:22 PM
点击更新按钮后,我将时间列值更改为06:22 PM。更新成功,但是当我在datagridview中再次显示数据时,日期值已更改为今天的日期。
dt_id ----------日期----------时间
1 ----------- 27/07/2015 ----- 06:22 PM
实际上日期值在MYSQL数据库中受到影响。
如何在不更改datagridview中的日期值的情况下更改或更新时间值?
答案 0 :(得分:0)
好的,当您尝试更新组合的date_time值中的仅时间值时,它也会更新日期。
以下更新查询将仅更新日期时间列的时间
update testing set date_time=concat(substr(date_time,1,11),'20:21:00') where id=2;
现有数据:
+----+---------------------+
| id |date_time |
+----+---------------------+
| 1 | 1987-03-20 18:10:00 |
| 2 | 1989-03-20 19:32:00 |
+----+---------------------+
仅更新时间后:
+----+---------------------+
| id | date_time |
+----+---------------------+
| 1 | 1987-03-20 13:00:00 |
| 2 | 1989-03-20 20:21:00 |
+----+---------------------+