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

SQL中EXEC sp_readerrorlog如何使用日期参数筛选当前日期日志

答案

可以实现,sp_readerrorlog 本身就支持传入起始时间、结束时间作为筛选参数,你可以直接构造当前日期的起止时间传入即可。

sp_readerrorlog 可用参数说明

  • 第1位:错误日志编号(0为当前活动日志,1为上一个归档,以此类推,对应你代码里写的6)
  • 第2位:日志类型(1=SQL Server错误日志,2=SQL Server代理日志,默认值为1)
  • 第3位:日志内容包含的第一个关键词(可选,无内容筛选需求填NULL)
  • 第4位:日志内容包含的第二个关键词(可选,无内容筛选需求填NULL)
  • 第5位:日志记录的起始时间
  • 第6位:日志记录的结束时间
  • 第7位:结果排序方式(可选,ASC/DESC,默认DESC按时间倒序)

实现代码示例

筛选今日0点到当前时间的对应日志,语句如下:

DECLARE @TodayStart DATETIME = CAST(GETDATE() AS DATE);
DECLARE @Now DATETIME = GETDATE();

EXEC sp_readerrorlog 
    6,          -- 你指定的日志编号
    1,          -- 筛选SQL Server错误日志,要查代理日志可改为2
    NULL,       -- 无需按内容关键词筛选则填NULL,有需求替换为对应字符串即可
    NULL,       -- 第二个内容筛选关键词同理
    @TodayStart,-- 起始时间:今日0点
    @Now,       -- 结束时间:当前时间
    'ASC'       -- 按时间正序排列,需要倒序可改为DESC

如果要匹配今日完整自然日(截止到当日23:59:59.999),把结束时间参数替换为DATEADD(ms, -3, DATEADD(day, 1, @TodayStart))即可。注意不需要内容筛选时,第3、4位必须显式填NULL,不能留空,否则会出现参数错位问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:09:03