簡體   English   中英

如何在LINQ查詢中將日期時間值與毫秒精度進行比較

[英]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.

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