簡體   English   中英

如何比較sql datetime和c#datetime

[英]How to compare sql datetime and c# datetime

這是從我之前的問題中產生的

我在c#中有一個DateTime。

然后將此值插入數據庫。

之后選擇此值並比較該日期與開頭的日期相同。

做這個的最好方式是什么? 由於SQL datetime具有不同的刻度,因此第一步中的DateTime將與SQL DateTime(row [“MyDate”])不同

如何比較它們?

從另一個中減去一個並檢查生成的TimeSpan的滴答,使其在刻度長度差異的可接受限度內

您可以使用SqlDateTime結構。

DateTime now = DateTime.Now;
SqlDateTime sqlNow = new SqlDateTime(now);
bool equal = now == sqlNow.Value; // false

因此,如果您有DateTime並想知道它是否等於DB- DateTime使用:

Assert.Equal(dbEndTime, new SqlDateTime(endTime).Value); //  true

SqlDateTime

表示從1753年1月1日到9999年12月31日的值的日期和時間數據,以及存儲在數據庫中或從數據庫中檢索的3.33毫秒的准確度。 SqlDateTime結構與其對應的.NET Framework類型DateTime具有不同的基礎數據結構,可以表示在12:00到AM 1/1/0001和12/31/59 PM 12/31/9999之間的任何時間到精度為100納秒。 SqlDateTime實際上存儲了相對差異到00:00:00 AM 1/1/1900。 因此,從“00:00:00 AM 1/1/1900”到整數的轉換將返回0。

如果你忽略毫秒的差異,你可以試試這個

Select * from MyTable DATEADD(ms, -DATEPART(ms, endTime), endTime) = @value

暫無
暫無

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

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