[英]Type to store time in C# and corresponding type in T-SQL
我想知道如何在 C# 和 T-SQL 中存儲時間。 我知道它們都提供了DateTime類型,但我只需要存儲一個time 。 例如:
var startTime = 9PM;
var endTime = 10PM;
然后從數據庫中存儲/檢索這些值。 提前致謝。
弗朗切斯科
是否使用 C# 中的DateTime
或TimeSpan
類型來存儲9 PM
取決於您的喜好。 就個人而言,我會使用DateTime
,將日期組件留空,因為這在語義上更接近您想要的。 ( TimeSpan
旨在保存時間間隔,例如“21 小時”。)
該文檔支持這兩個選項。 這是來自TimeSpan 的文檔:
TimeSpan 結構也可用於表示一天中的時間,但前提是時間與特定日期無關。
另一方面,MSDN 文章在 DateTime、DateTimeOffset 和 TimeZoneInfo 之間選擇提到以下內容:
DateTime 結構適用於執行以下操作的應用程序:
* 僅使用日期。
* 僅使用時間。
[...]
SQL 服務器具有time
數據類型。
在 C# 中,沒有一個類型只能保存一次。 有TimeSpan
,但它旨在保留一段時間,而不是DateTime
的真正組成部分(即小時和分鍾)。
從 SQL Server 2008 開始,有一個time
類型(使用日期和時間數據)只存儲一個時間組件。
編輯:起初誤讀了您的問題。 TimeSpan
正是您正在尋找的,它可以使用 SQL 2K8 存儲在time
類型中。
c# 中的時間跨度是您操縱時間間隔的方式。 與其他海報所說的相反,我認為時間數據類型對於在 SQL 中存儲時間間隔是不正確的,除非您實際上想要存儲開始時間和結束時間而不是時間間隔(即在您的示例中為 1 小時) . 它用於存儲一天中的時間,有點像 DateTime 但沒有日期。 當我想在 SQL 中存儲一個時間間隔時,我只使用一個 int 然后讓它代表一個適合我想要做的時間單位(例如分鍾、秒、毫秒等)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.