繁体   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