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