簡體   English   中英

在 C#.NET 應用程序中使用 SQL 服務器時間數據類型?

[英]Use SQL Server time datatype in C#.NET application?

如何在 C#.NET 中使用 SQL Server 2008 中引入的 SQL time數據類型?

我一直試圖讓它工作但沒有成功。

這是一篇MSDN 文章,它回顧了 SQL Server 2008 中引入的所有與 ADO.NET 相關的新日期和時間數據類型。 正如文檔所說:對於System.Data.DbType.Time您將使用 .NET Framework 類型System.TimeSpan

我認為您可以將TimeSpan數據類型用於您的目的。 這是一篇解釋在 ADO.NET 中使用Time數據類型的文章

此外,即使是來自 Microsoft 的人也傾向於建議將 sql 數據類型時間映射到 System.Timestamp 我不建議這樣做,

因為 sql 時間的范圍是 00:00:00.0000000 - 23:59:59.9999999

而 System.TimeSpan 的范圍是 10675199.02:48:05.4775808 - 10675199.02:48:05.4775807

這只是略有不同,可能會導致令人討厭的運行時超出范圍錯誤。

您可以使用 datareader 使用類似於以下語句的內容來讀取它。

TimeSpan time = dr.GetTimeSpan(dr.GetOrdinal(“Time7FieldName”));

你是如何訪問數據的? 使用實體框架、存儲過程等。
如果您必須傳遞日期的字符串表示形式,請確保以“yyyy-mm-dd hh:mm:ss”格式執行此操作,否則您將面臨 dd/mm/yyyy 與 mm/dd/ 的風險yyyy 混亂。 如果您使用的是實體框架或數據集,那么您應該只將參數傳遞給 DataTime 實例,例如 DateTime.Now

如果您的領域及時,您可以簡單地使用(時間跨度)進行投射,

 while (reader.Read())
        {
             TimeSpan DBStartTime = (TimeSpan)reader["StartTime"];
             TimeSpan DBEndTime = (TimeSpan)reader["EndTime"];
            
        }

這是一篇Microsoft Docs文章,解釋了代碼中時間數據類型的使用。

暫無
暫無

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

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