簡體   English   中英

毫秒未顯示在 DateTime 類型的 SQL 輸出中

[英]Milliseconds not showing in SQL output for DateTime type

我在查看DATETIME類型列的毫秒分量時遇到問題。

定義表的代碼是:

string command = string.Format("CREATE TABLE {0}(EventDateTime DATETIME, layer3Id VARCHAR(35), EventType VARCHAR(55), Protocol VARCHAR(30), MessageBody VARCHAR(MAX), MessageContent VARCHAR(MAX))", tableName);
SendSqlCommand(command);

填充行的代碼是:

string insertCommand = string.Format(@"INSERT INTO {0} VALUES (@p1, @p2, @p3, @p4, @p5, @p6)", tablename);

_con.Open();

using (SqlCommand cmd = new SqlCommand(insertCommand, _con))
{
    cmd.Parameters.AddWithValue("@p1", record.EventDateTime);
    cmd.Parameters.AddWithValue("@p2", record.layer3Id);
    cmd.Parameters.AddWithValue("@p3", record.EventType);
    cmd.Parameters.AddWithValue("@p4", record.Protocol);
    cmd.Parameters.AddWithValue("@p5", record.MessageBody);
    cmd.Parameters.AddWithValue("@p6", record.MessageContent);

    cmd.ExecuteNonQuery();
}

其中EventDateTime字符串值類似於2016/01/09 16:10:08.500

當我在表上運行查詢時,我返回: 09/01/2016 16:10:08

沒有毫秒。 我不知道這些值是否會進入數據庫,或者是否使用了錯誤的類型,或者查詢是否沒有正確響應:

TestTable.Take (100)

因此,讓我們假設您的數據庫中有這些值:

在此處輸入圖片說明

通過運行純 sql 語句,您應該能夠以您預期的格式檢索日期時間,以毫秒為單位

在此處輸入圖片說明

在你的 C# 中,作為一個例子,你可以控制格式,這是一個例子:

            var res = db.MyTables.Take(100);

            foreach(var date in  res)
            {
                Console.WriteLine(Convert.ToDateTime(date.EventDateTime).ToString("dd/MM/yyyy hh:mm:ss.fff"));
            }

這是輸出:

在此處輸入圖片說明

毫秒。 你只是不顯示它們。

因此,當您從數據庫中讀取時間時,您需要對其進行格式化以進行輸出,如下所示:

string s;
s.Format("{0:yyy-MM-dd hh:mm:ss.fff}", record.EventDateTime)

現在您可以顯示變量s

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM