You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用VB.Net查询SQL Server时处理日期字段精度问题

事件日志轮询的SQL时间匹配问题

我们有一张事件日志表,原开发人员使用标准的Date.Now将时间戳存入数据库,事件时间戳格式示例:2024-10-23 11:53:18.110。

需要开发一个监控功能:每分钟读取数据库,发送关键事件邮件。由于仅每分钟轮询一次,担心时间戳精度过高会错过事件,计划将事件时间四舍五入到整分钟,每次轮询上一分钟的数据(例如11:54时轮询2024-10-23 11:53时间段的事件)。

核心需求

  • 优先通过SQL语句实现时间匹配,而非拉取所有数据后再处理
  • 在SQL Server端将日期字段截断至小时和分钟级别,无需修改数据库或创建视图;若无法实现,再考虑修改事件存储方式或创建视图

现有示例代码(VB.NET)

Dim myFullDate As Date = CDate(Date.Now.ToShortDateString + " " + Date.Now.AddMinutes(-1).ToShortTimeString)
Dim myParamList As New Dictionary(Of String, Object) From {
                        {"@myDateTime", myFullDate}
                        }
Dim myEvents As DataTable = RetrieveData("SELECT [Name], [DateTime], [Description],[Severity] WHERE [DateTime]=@myDateTime", myParamList)

遇到的问题

无法写出将[EventDateTime]截断以匹配上一分钟的SQL语法,也不确定是否应创建SQL视图转为字符串进行比对。

编辑说明:此问题并非仅比较日期,不应标记为重复。

最终采纳的解决方案

采用Richard Deeming的建议:通过变量记录LastPolled时间,每次轮询时查询该时间之后的所有事件,并更新LastPolled变量,从根源避免轮询遗漏导致的事件丢失问题。


内容的提问来源于stack exchange,提问作者ADY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 23:29:59