当我从Mysql表中获取数据时,datetime列2017-09-19 16:14:47
将自动转换为自己的格式,如9/19/2017 3:45:50 PM
。当我将数据导入DataTable
并转换为字符串时,会发生这种情况:
DataTable update;
localdb.MysqlQuery(queryUpdate);
update = localdb.QueryEx();
if (update.Rows.Count > 0)
{
onlinedb = new DataAccessOnline();
foreach (DataRow row in update.Rows)
{
row["added"].ToString(); //9/19/2017 3:45:50 PM
但我需要获取此值,因为它在TABLE列2017-09-19 16:14:47
中我该怎么做?
答案 0 :(得分:3)
首先,您需要使用Convert.ToDateTime方法将从DB获取的数据转换为DateTime对象。 然后,您可以在DateTime.toString方法上指定所需的格式。
它看起来像这样:
DateTime added = Convert.ToDateTime(row["added"].ToString());
string formatted = added.toString("yyyy-MM-dd HH:mm:ss");
答案 1 :(得分:2)
您可以在服务器端查询中将其格式化为字符串。
mySql将数据提供给C#作为日期时间类型。 C#的解释和呈现日期时间类型值的格式略有不同。最终,无论如何,数据将像日期时间字段一样工作。
如果你把它变成格式化的字符串,你需要将它转换为C#中的datetime,使其像日期时间一样运行。另一方面,如果您希望在C#中转换它以用于演示目的,请在C#中进行,而不是在引入数据时,因为它将是一个字符串,而不是日期时间。
You can see more .ToString() conversion details here.
您需要的默认格式是“u”,但您可以像这样提供自己的格式字符串。
string dt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")