2017-09-20 3 views
1

Mysqlテーブルからデータを取得すると、2017-09-19 16:14:479/19/2017 3:45:50 PMのような独自のフォーマットに自動的に変換されます。それは私がDataTableにデータを取得し、次のように文字列に変換していたときに起こります。なぜC#でデータベースからのクエリを変換する場合

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 

が、私はそれは私がそれを行うことができますどのようにテーブル列2017-09-19 16:14:47であるとして、この値を取得する必要がありますか?

+0

:Convert.ToDateTime(行[ "追加"]のToString()); –

答えて

2

あなたはConvert.ToDateTimeメソッドを使用してDateTimeオブジェクトにDBから取得したデータを変換する必要がありまず。 次に、DateTime.toStringメソッドで必要な書式を指定することができます。

なお、このようなものになります。このコード使用

DateTime added = Convert.ToDateTime(row["added"].ToString()); 
string formatted = added.toString("yyyy-MM-dd HH:mm:ss"); 
2

文字列としてサーバー側のクエリで書式設定できます。

mySqlは、datetime型としてC#にデータを与えています。 C#は、あなたにdatetime型の値を解釈し、提示するためのやや異なるフォーマットを持っています。最終的には、データは日時フィールドのように機能します。

書式設定された文字列のように指定する場合は、datetimeのように機能させるには、C#でdatetimeに変換する必要があります。一方、それをC#でプレゼンテーション目的で変換したい場合は、C#で行います。データを取得するのではなく、datetimeではなく文字列になるためです。あなたが必要とする

You can see more .ToString() conversion details here.

デフォルトの形式は、「U」ですが、このような独自のフォーマット文字列を提供することができます。

string dt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") 
関連する問題