Обновление «Учет оргтехники в организации»
В последнем срезе на github , внедрён функционал по «регистровому» хранению состояния ТМЦ. В связи с чем появляется возможность формирования различного вида отчетов «на дату». Например вида:
Жизнь замечательных грибов
Наработки и статьи по работе с Linux
В последнем срезе на github , внедрён функционал по «регистровому» хранению состояния ТМЦ. В связи с чем появляется возможность формирования различного вида отчетов «на дату». Например вида:
Попалась в очередной раз на глаза статья о Rosa Linux. Решил дай думаю попробую со скуки. Но что-то пошло не так (с).
Дано: таблица вида
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
mysql> select * from config_common where nameparam like 'dtc-3-%-1' and valueparam<>"" limit 10; +--------+--------------+------------+ | id | nameparam | valueparam | +--------+--------------+------------+ | 3632 | dtc-3-1709-1 | 15.01.2016 | | 4147 | dtc-3-3513-1 | 01.03.2016 | | 343653 | dtc-3-5156-1 | 16.09.2016 | | 343519 | dtc-3-5143-1 | 16.09.2016 | | 343417 | dtc-3-5090-1 | 16.09.2016 | | 342901 | dtc-3-4951-1 | 16.09.2016 | | 342878 | dtc-3-4895-1 | 16.09.2016 | | 342832 | dtc-3-4664-1 | 16.09.2016 | | 342786 | dtc-3-4160-1 | 16.09.2016 | | 342513 | dtc-3-4395-1 | 16.09.2016 | +--------+--------------+------------+ 10 rows in set (0.00 sec) |
Как видим поле valueparam в текстовом виде, да еще не в формате MySQL. А выборка нужна именно по диапазону дат. Решение кроется в использовании функции STR_TO_DATE:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
mysql> select *,CONVERT(STR_TO_DATE(valueparam,"%d.%m.%Y"),date) as dt from config_common where nameparam like 'dtc-3-%-1' and valueparam<>"" and CONVERT(STR_TO_DATE(valueparam,"%d.%m.%Y"),date) between "2016-12-01" and "2016-12-31" limit 10; +--------+--------------+------------+------------+ | id | nameparam | valueparam | dt | +--------+--------------+------------+------------+ | 421968 | dtc-3-4059-1 | 13.12.2016 | 2016-12-13 | | 421943 | dtc-3-4452-1 | 13.12.2016 | 2016-12-13 | | 421917 | dtc-3-901-1 | 13.12.2016 | 2016-12-13 | | 421896 | dtc-3-3224-1 | 13.12.2016 | 2016-12-13 | | 421870 | dtc-3-1624-1 | 13.12.2016 | 2016-12-13 | | 421847 | dtc-3-3173-1 | 13.12.2016 | 2016-12-13 | | 421824 | dtc-3-5655-1 | 13.12.2016 | 2016-12-13 | | 421801 | dtc-3-845-1 | 13.12.2016 | 2016-12-13 | | 421778 | dtc-3-3994-1 | 13.12.2016 | 2016-12-13 | | 421743 | dtc-3-871-1 | 13.12.2016 | 2016-12-13 | +--------+--------------+------------+------------+ 10 rows in set (0.03 sec) |
Задача: отформатировать удобочитаемый формат не форматированный xml громадного размера
Решение:
1 |
cat dump.xml | xmllint --format - > ff.xml |
Получение триггеров с учетом зависимостей. Т.е. Если некий тригер А зависит от триггера Б, то его в списке не будет.
1 |
SELECT (UNIX_TIMESTAMP()-triggers.lastchange)/60 as minut,hosts.host, triggers.description, triggers.comments, triggers.triggerid FROM triggers INNER JOIN functions ON triggers.triggerid=functions.triggerid INNER JOIN items ON items.itemid=functions.itemid INNER JOIN hosts ON hosts.hostid=items.hostid INNER JOIN hosts_groups ON hosts_groups.hostid=hosts.hostid INNER JOIN groups ON groups.groupid=hosts_groups.groupid WHERE hosts.status = 0 AND items.status = 0 AND triggers.status = 0 AND triggers.priority=5 AND triggers.value=1 and ((UNIX_TIMESTAMP()-triggers.lastchange)/60)>15 and triggers.triggerid in (select triggerid_up from trigger_depends where triggerid_down in (SELECT triggers.triggerid FROM triggers INNER JOIN functions ON triggers.triggerid=functions.triggerid INNER JOIN items ON items.itemid=functions.itemid INNER JOIN hosts ON hosts.hostid=items.hostid INNER JOIN hosts_groups ON hosts_groups.hostid=hosts.hostid INNER JOIN groups ON groups.groupid=hosts_groups.groupid WHERE hosts.status = 0 AND items.status = 0 AND triggers.status = 0 AND triggers.priority=5 AND triggers.value=1 and ((UNIX_TIMESTAMP()-triggers.lastchange)/60)>15 group by triggerid)) group by triggers.triggerid |