我用.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
、datetime
或timestamp
数据类型存储数据,.NET 会将其放在DateTime
结构中。这完全没问题,因为这只是数据的结构,而不是它的可视化表示。
如果要更改程序的默认日期格式(对所有日期一劳永逸地修复它),可以将CurrentCulture
设置为所需的区域性:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
如果只需要设置日期格式,则可以设置Thread.CurrentThread.CurrentCulture.DateTimeFormat
和Thread.CurrentThread.CurrentUICulture.DateTimeFormat
。