[英]How to compare to datetime values to millisecond accuracy in LINQ query
我正在運行一個相當直接的LINQ查詢,如下所示:
List<Event> lstEvents = db.Events.Where(e => e.SystemDatetime <= eventItem.SystemDatetime).ToList();
SystemDateTime是數據庫中的DateTime列,以yyyy-mm-dd hh:MM:ss.fff格式存儲日期時間。 DateTime比較僅與最接近的秒進行比較,但不夠准確。
如何將LINQ語句中的兩個值與毫秒進行比較?
您可以在C#中檢索DateTime
對象的總毫秒數。 然后,您現有的比較將以更高的准確度工作。
List<Event> lstEvents = db.Events.Where(e => e.SystemDatetime.TotalMilliseconds <= eventItem.SystemDatetime.TotalMilliseconds).ToList();
DateTime比較僅與最接近的秒進行比較,但不夠准確。
事實並非如此。 這取決於您的DateTime列的數據類型。 選擇datetime2數據類型以獲得更高的准確性。
請參閱下面的SQL。
DECLARE @datetimes TABLE ([Column1] DATETIME2(7), [Column2] DATETIME2(7))
INSERT INTO
@datetimes
VALUES
('2019-03-26 20:00:00.123', '2019-03-26 20:00:00.124')
SELECT
*
FROM
@datetimes
WHERE
[Column1] <> [Column2]
SELECT
*
FROM
@datetimes
WHERE
[Column1] = [Column2]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.