如何使用日期时间字符串的事件子属性从 SEQ 日志中进行选择?

问题描述 投票:0回答:1

我似乎在选择具有编码为 DateTime() 字符串的子属性的日志事件时遇到问题。可能只是我的语法错误,但是:

使用“数字”子属性选择名为 SpotPrice 的事件: SpotPrice.PriceSeqId > 50000 有效,返回 PriceSeqId 大于 50,000 的事件

然而,尝试从相同的事件中进行选择,但在名为 DateTimeUTC 的子属性上进行选择会失败,使用类似以下内容:

DatePart(DateTime(SpotPrice.DateTimeUTC), '月份', OffsetIn('美国/纽约', DateTime(SpotPrice.DateTimeUTC))) = 4

(顺便说一句,这个表达式:SpotPrice.DateTimeUTC = '2024-05-03T15:13:24.1714197' 有效,并返回单个事件)

不用说,我正在尝试选择具有自己的(内部)日期时间(由某些远程服务器生成)的事件,而不是根据 SEQ 自己的 @TimeStamp 选择事件。任何指示表示赞赏。

还尝试过多种搜索变体,例如: 日期时间(SpotPrice.DateTimeUTC) > 日期时间('2024-05-03T15:13:16.2726572') 等等

正在使用 Seq 2023.4.10097,从 Windows C# 应用程序记录 Serilog 事件。

SEQ 日志: 来自 SEQ 浏览器

serilog seq-logging
1个回答
0
投票

查询未返回任何结果,因为

DateTime('2024-05-03T15:13:24.171419')
为 null。如果没有时区,Seq 就无法知道如何解析日期。

由于日期字符串是 UTC,你可以执行

DateTime(concat(SpotPrice.DateTimeUTC, 'Z'))
并且它应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.