1

SQL Server データベースでは、タイムスタンプはミリ秒単位で追加されます。しかし、取得中、ミリ秒は返されません。つまり、タイムスタンプが2012-04-23 15:03:35.345 PMの場合、取得時に2012-04-23 15:03:35.000 PM. データを取得するために次のコードを使用しました。

query = "Select * from database";
_cmd = new SqlCommand(query, _con);

SqlDataAdapter da = new SqlDataAdapter(_cmd);
DataTable dt = new DataTable();
da.Fill(dt);

foreach (DataRow dr in dt.Rows)
{
    string str = Convert.ToDateTime(dr[0].ToString()).ToString("yyyy-MM-ddhh:mm:ss.fff");
    dt[0] = str;
}

どうすればミリ秒も取得できますか?

4

1 に答える 1

3

dr[0]おそらくすでに DateTime であり、それを文字列に変換して DateTime に戻すことは何の役にも立ちません。キャストする必要があると思います:

string str = ((DateTime)dr[0]).ToString("yyyy-MM-ddhh:mm:ss.fff");

デバッガーを使用して、式全体 (またはあなたの場合は興味深い部分) を選択して式のタイプを確認し、選択をdr[0]右クリックして [QuickWatch] を選択します。リストの最後の列はタイプです。

于 2012-04-23T12:56:44.733 に答える