Новичок здесь ...
Мне поставили задачу сообщить данные за предыдущий календарный месяц в базе данных SQL Server 2012, но отметки времени устанавливаются по времени эпохи.Это немного сложная задача - отослать запрос, который я написал, к предыдущему месяцу.
Любая помощь была бы отличной.
DECLARE @fromDate AS DATETIME
DECLARE @toDate AS DATETIME
SET @fromDate = DATEADD(DAY, -1, CONVERT(SMALLDATETIME, CONVERT(DATE, GETDATE())))
SET @toDate = DATEADD(DAY, 0, CONVERT(SMALLDATETIME, CONVERT(DATE, GETDATE())));
SELECT
DATEADD(mi, DATEDIFF(mi, 0, cm.CREATE_DATE)/30*30,0) 'HALF_HOUR' ,
COUNT(DISTINCT cm.ACTIVITY_1D) 'ACTIVITY_COUNT' ,
SUM(cm. EVENT_DURATION) AS AGENT_EVENT_TIME,
CASE
WHEN SUM(cm.EVENT_DURATION) <== 1800
THEN 1
ELSE CEILING (SUM(cm.EVENT_DURATION)*1.0/1800)
END AS AVG_CONCURRENCY,
u.USER NAME
FROM
[dbo].[EGPL_EVENT_HISTORY_CASe_MGMT] cm
JOIN
EGPL USER u ON u.USER ID = cm.USER ID
WHERE
cm. CREATE_DATE BETWEEN @fromDate AND @toDate
AND USER NAME != ' system '
GROUP BY
DATEADD(mi, DATEDIFF(mi, 0, cm.CREATE_DATE) / 30 * 30, 0), u.USER_NAME
ORDER BY
1, 3
В дополнение к комментариям ... это должно выполняться как ежемесячное задание (пакетное задание по расписанию).я выполнил аналогичные запросы со стандартной датой / временем, но ударил кирпичную стену эпохой.
Спасибо