datediff 函数导致溢出及用于分隔两个日期/时间实例的日期部分的数字太大该怎么办,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
执行检查alwayson同步的脚本:
SELECT availability_mode_desc ,
role_desc ,
replica_server_name ,
last_redone_time ,
GETDATE() now ,
DATEDIFF(ms, last_redone_time, GETDATE()) diffMS
FROM ( ( sys.availability_groups AS ag
JOIN sys.availability_replicas AS ar ON ag.group_id = ar.group_id
)
JOIN sys.dm_hadr_availability_replica_states AS ar_state ON ar.replica_id = ar_state.replica_id
)
JOIN sys.dm_hadr_database_replica_states dr_state ON ag.group_id = dr_state.group_id
AND dr_state.replica_id = ar_state.replica_id;
报错:
datediff 函数导致溢出。用于分隔两个日期/时间实例的日期部分的数字太大。请尝试使用日期部分精度较低的 datediff。
1、可能是一个日期是空值
2、可能是两个日期相差太远
检查后发现是两个日期相差太远。
last_redone_time的时间和GETDATE()的时间相差太远。
表示有一个库长时间没有数据更新,所以last_redone_time的值长时间没有变。
把那个库的数据更新一下,同步脚本正常。
关于datediff 函数导致溢出及用于分隔两个日期/时间实例的日期部分的数字太大该怎么办问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。