为什么C#在从db

时间:2017-09-20 05:03:44

标签: c# mysql

当我从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中我该怎么做?

2 个答案:

答案 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")