У меня есть работа sql, которая запрашивает базу данных. Задача должна запускаться каждые 24 часа, и она отправляет электронное письмо с требуемыми данными с диапазоном запросов от 07:30 сегодня до 07:30 предыдущего дня. Вот код для заголовка моей электронной почты:SQL - диапазон запросов электронной почты
INSERT INTO @ReportContentBuilder VALUES('<h4>Query Range : ' + DATENAME(WEEKDAY,@StartTimestamp)
+ ', ' + CONVERT(varchar, @StartTimestamp, 106) + ' ' + CONVERT(varchar, @StartTimestamp, 108)
+ ' (UTC) to ' + DATENAME(WEEKDAY,@EndTimestamp) + ', ' + CONVERT(varchar, @EndTimestamp, 106)
+ ' ' + CONVERT(varchar, @EndTimestamp, 108) + ' (UTC)</h4>')
Здесь значение я для @StartTimestamp:
SET @StartTimestamp = CAST((CONVERT(varchar(11), DATEADD(DAY, -1, @EndTimestamp), 106) + ' 07:30') as datetime)
Вот ожидаемый выход на мой электронный заголовок:
Диапазон запросов: среда, 19 ноября 2014 г. 07:30:00 (UTC) по четверг, 20 ноября 2014 г. 07:30:00 (UTC)
Мой вопрос: какое значение у меня se для @EndTimestamp ??
Если я использую GETUTCDATE(), а задание выполняется через 2 минуты, то диапазон неверен. Я также не хочу жестко кодировать его из-за изменений, необходимых для дневного сбережения каждый раз.