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 回答