Symptoms
Assume that you enable the Change Data Capture (CDC) feature on a table to run a log scan in Microsoft SQL Server. The pollinginterval parameter is converted from seconds (s) to hours (h) in the sys.sp_cdc_scan stored procedure. However, when the pollinginterval parameter is greater than one hour (>3600 s), you notice that the converted result is incorrect.
declare @pollinginterval bigint, @seconds bigint, @minutes bigint, @hours bigint
set @pollinginterval = 3600 select @seconds = @pollinginterval % 60 select @minutes = ((@pollinginterval - @seconds) / 60) % 60 select @hours = (@pollinginterval - (@minutes * 60) - @seconds) / 60 --- Next attempt below line instead --- select @hours = (@pollinginterval - (@minutes * 60) - @seconds) / 60 /60 select @hours, @minutes, @secondsResolution
This problem is fixed in the following cumulative updates for SQL Server:
Cumulative Update 12 for SQL Server 2017
Cumulative Update 3 for SQL Server 2016 SP2
Cumulative Update 12 for SQL Server 2016 SP1
Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:
Latest cumulative update for SQL Server 2017
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
References
Learn about the terminology that Microsoft uses to describe software updates.