2016-12-23 2 views
0

У меня есть таблица t_windows_updates, которая имеет два столбца ci_id и update_installed_on. Таблица будет иметь все обновления Windows произошло со всеми активами в моей среде. данных будет какПроверьте, является ли значение столбца метки времени более шести месяцев.

ci_id| update_installed_on 

1   | 1452364200000 

1   | 1453055400000 

2   | 1441650600000 

2   | 1441650600000 

2   | 1441650600000 

Я хочу, чтобы все ci_ids, для которых последнее изменение не произошло в течение последних шести месяцев.

Мой запрос является

SELECT t.ci_id FROM `t_windows_update` t 
     GROUP BY t.ci_id 
     HAVING MAX(t.update_installed_on)<= (NOW() - INTERVAL 6 MONTH); 

Это работает, но получает неправильные результаты.

+0

Я пытаюсь поставить разделенную запятую CI идентификаторов в столбец Я получаю сообщение об ошибке: Subquery возвращает более 1 строки UPDATE metrics SET id_list = (SELECT GROUP_CONCAT (DISTINCT t.ci_id SEPARATOR ',') FROM 't_windows_update' t GROUP BY t.ci_id HAVING MAX (t.update_installed_on)/1000 <= UNIX_TIMESTAMP (CURDATE() - INTERVAL 6 МЕСЯЦ)) – Jerry

ответ

2

Ваша проблема - формат даты.

Я думаю, что это формат unix в миллисекундах. Таким образом, это говорит о том что-то вроде:

having max(t.update_installed_on) <= UNIT_TIMESTAMP(CURDATE() - INTERVAL 6 MONTH) * 1000 

Я понимаю, что выше, может иметь проблемы переполнения с целыми числами, так что давайте пойдем другой путь:

having max(t.update_installed_on)/1000 <= UNIT_TIMESTAMP(CURDATE() - INTERVAL 6 MONTH) 
+0

Мне нужно обновить некоторую таблицу со всеми этими идентификаторами, разделенными запятой. SELECT GROUP_CONCAT (DISTINCT t.ci_id SEPARATOR ',') FROM 't_windows_update' t GROUP BY t.ci_id HAVING MAX (t.update_installed_on)/1000 <= UNIX_TIMESTAMP (CURDATE() - INTERVAL 6 MONTH) Я получаю результат, содержащий больше, чем один ряд ошибка здесь – Jerry

+0

@Jerry. , , Новые вопросы должны задаваться как вопросы, а не комментарии. –

+0

Извините, так как это было частью моего текущего вопроса, который мы задали здесь. В любом случае я получил это работу :) – Jerry

Смежные вопросы