我的Mysql表中有一个DateTime eventDate
字段,当我将其插入db时,我从输入中编写:
cmd.Parameters.Add("?eventDate", MySqlDbType.DateTime).Value = DateTime.ParseExact(txtEventDate.Text + " " + txtEventTime.Text,
"MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);
并保存得很好:
2011-05-05 10:20:00
现在,当我从数据库中读取它时,我希望将其拆分但如果我这样做则会失败:
txtEventDate.Text = DateTime.ParseExact(Reader.GetValue(7).ToString(), "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture).Date.ToShortDateString();
txtEventTime.Text = DateTime.ParseExact(Reader.GetValue(7).ToString(), "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture).TimeOfDay.ToString();
说:
字符串未被识别为有效的DateTime。
你看到有什么问题吗?我无法弄清楚我错在哪里......
答案 0 :(得分:4)
将它转换为字符串并将其解析为日期时间似乎是多余的,这可能会引入意外日期格式的问题。
如果数据库中有Datetime
,您也可以
txtEventDate.Text = Reader.GetDatetime(7).ToShortDateString();
txtEventTime.Text = Reader.GetDatetime(7).TimeOfDay().ToString();
答案 1 :(得分:1)
要格式化DateTime,请尝试这样的事情......
DateTime date = Reader.GetDateTime(7);
txtEventDate.Text = date.ToString("MM/dd/yyyy");
txtEventTime.Text = date.ToString("HH:mm:ss");
答案 2 :(得分:0)
您必须提供正确的格式。那可能是:
yyyy-dd-MM HH:mm:ss