如何处理日光节约?

时间:2016-10-05 01:12:49

标签: sql-server-2008

我编写了一个窗口服务(C#),它不断将数据从Oracle数据库提取到Sql Server数据库。

窗口服务在无限循环中运行,并在一次成功运行后休眠一小时。

每次运行窗口服务,我都视为Job和那个Job No我将2个输入日期/时间参数传递给oracle SP,它获取2个日期之间的所有记录,

这里是传递日期的逻辑,

enter image description here

现在,在白天节电模式下,我的时钟会提前一小时转发,然后我将丢失那段时间的数据。

如何处理这一天的节能方案,我从sql查询下面生成开始/结束日期,

DECLARE @startDate VARCHAR(20)
DECLARE @endDate VARCHAR(20)

IF EXISTS(SELECT 1 FROM dbo.tblImportAlertsJob(NOLOCK) WHERE JobStatus = 'Completed')
BEGIN
    SELECT @startDate = CONVERT(VARCHAR, DATEADD(ss, 1, InputEndDateTime), 112) + ' ' + CONVERT(VARCHAR, DATEADD(ss, 1, InputEndDateTime), 8)
    FROM dbo.tblImportAlertsJob(NOLOCK)
    WHERE JobID  = (SELECT MAX(JobID) FROM dbo.tblImportAlertsJob(NOLOCK) WHERE JobStatus = 'Completed')
END
ELSE
BEGIN
    SELECT @startDate = CONVERT(VARCHAR, DATEADD(ss, -60, GETDATE()), 112) + ' ' + CONVERT(VARCHAR, DATEADD(ss, -60, GETDATE()), 8)
END

SET @endDate = CONVERT(VARCHAR, GETDATE(), 112) + ' ' + CONVERT(VARCHAR, GETDATE(), 8)

INSERT INTO dbo.tblImportAlertsJob(InputStartDateTime, InputEndDateTime) VALUES(@startDate, @endDate)

SELECT CAST(SCOPE_IDENTITY() AS BIGINT) AS 'JobId', @startDate AS 'StartDate', @endDate AS 'EndDate'

0 个答案:

没有答案