如何从LSN减去

时间:2019-02-21 08:22:17

标签: sql-server datetime change-data-capture

我需要从lsn(二进制日期)中减去5秒。我到目前为止所取得的成就是

select DATEADD(SECOND,-5,sys.fn_cdc_map_lsn_to_time(sys.fn_cdc_get_max_lsn()))

但是,这似乎更加拥挤。我要找的是直观的东西

sys.fn_cdc_get_max_lsn()-0.5`sys.fn_cdc_get_max_lsn()

1 个答案:

答案 0 :(得分:4)

创建一个自定义函数来对此进行总结:

CREATE FUNCTION dbo.MyCustomLSNDate ()
RETURNS DATETIME
AS
BEGIN
    RETURN DATEADD(
            SECOND,
            -5,
            sys.fn_cdc_map_lsn_to_time(sys.fn_cdc_get_max_lsn()))
END

如果需要,可以参数化要减去的秒数。创建后,您可以简单地编写:

SELECT dbo.MyCustomLSNDate()