MysqlConnection 字符串:获取日期在 (yyyy-mm-dd hh:mm:ss)

Posted

技术标签:

【中文标题】MysqlConnection 字符串:获取日期在 (yyyy-mm-dd hh:mm:ss)【英文标题】:MysqlConnection string: get Date in (yyyy-mm-dd hh:mm:ss) 【发布时间】:2015-05-11 14:55:29 【问题描述】:

我在 .Net C# 中开发了一个应用程序,用于在 mysql 数据库中检索和插入数据。

为了建立连接,我使用MySqlConnection...

在我的数据库中,有几个表格,每个表格都包含多个日期列,格式为 (yyyy-mm-dd hh: mm: ss)

我的问题是,当我通过 SQL 请求获取列时,我的日期格式为 (dd-mm-yyyy hh:mm:ss)。

我可以使用DateFormat()来格式化列,但是有很多列日期,并且请求可以更改。

我想知道是否有办法在字符串MyConnection 或类似的东西中强加日期格式。

我的字符串是:

string MyConnection = "datasource=192.168.0.1;port=3306;username=" + this.textBoxLogin.Text.ToString().Trim() +
                ";password=" + this.textBoxPassword.Text.ToString().Trim() + ";AllowZeroDateTime=True;TreatTinyAsBoolean=False;";

查询+获取数据+插入.xls文件:

MySqlConnection conn = new MySqlConnection(MyConnection);
MySqlDataAdapter dataAdapter = new MySqlDataAdapter();
conn.Open();

dataAdapter.SelectCommand = new MySqlCommand("Select * From table;", conn);
MySqlCommandBuilder commandBuilder = new MySqlCommandBuilder(dataAdapter);

////get data
DataTable dataTable = new DataTable();
dataAdapter.Fill(dataTable);

////insert in .xls File
DataSet dataSet = new DataSet();
dataSet.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;
dataSet.Tables.Add(dataTable);
CreateWorkbook("test\\Export.xls", dataSet);

数据库中的日期格式:2015/02/25 13:28:25

.xls 文件中的日期格式:25/02/2015 13:28:25

【问题讨论】:

您只需显示您的连接字符串。显示您的查询和列的数据类型。这些格式只是为了表示它们。如果您将它们保留为DATE,它们不能具有任何格式。 感谢您的快速回答。我添加了更多信息 根据我的回答(最后一部分)设置dataSet.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;的文化信息。 对不起,我的问题是关于数据库中的日期格式和我的 .xls 文件中的日期格式的问题。我混合它们。我纠正它 【参考方案1】:

如果数据库将数据存储在 datedatetimetimestamp 数据类型中,.NET 会将其放入 DateTime 结构中。这很好,因为这只是数据的结构,而不是它的视觉表示。

如果您想更改程序的默认日期格式(为所有日期修复一次),您可以将 CurrentCulture 设置为您需要的文化:

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");

如果只需要设置日期格式,可以设置Thread.CurrentThread.CurrentCulture.DateTimeFormatThread.CurrentThread.CurrentUICulture.DateTimeFormat

【讨论】:

而不是dataSet.Locale =System.Threading.Thread.CurrentThread.CurrentCulture; 我把'dataSet.Locale = new System.Globalization.CultureInfo("en-US");'或者就像您在回复中所说的那样,但这并不能解决问题。可能是我做错了什么我验证了 en-US 只是一个样本文化。将其设置为您需要的,具有您需要的日期格式。或者设置您当前文化的DateTimeFormat 属性。 非常感谢我已经用 System.Globalization.CultureInfo("ja-JP")

以上是关于MysqlConnection 字符串:获取日期在 (yyyy-mm-dd hh:mm:ss)的主要内容,如果未能解决你的问题,请参考以下文章

MySqlConnection.Open 无限期挂起

无法使用 MySQLConnection 连接到远程数据库

MySqlConnection 上的“InvalidOperationException:连接必须有效且打开”

C# 在 SqlDataReader 中禁用自动格式化

[A]MySql.Data.MySqlClient.MySqlConnection 无法转换为 [B]MySql.Data.MySqlClient.MySqlConnection

MySqlConnection 并发连接的问题