jalpy
@jalpy
sdfdfg

Как правильно задать время в sql запросе?

Добрый день, не могу задать промежуток во времени, как сделать например искать с 01.08.16 15:00 до 01.08.16. 17:00 ?

select h.name AS host_name, i.name AS item_name, i.key_ as item_key, FROM_UNIXTIME(hs.clock) AS last_time, hs.value, hs.logeventid
from 
	hosts h 
	join items i on h.hostid = i.hostid
	join history_log hs on i.itemid = hs.itemid
where hs.clock > UNIX_TIMESTAMP() - 86400 and i.hostid = '10458' and hs.logeventid = '4624' and hs.logeventid = '4625'
order by last_time, item_name 
INTO OUTFILE '/tmp/logon_logoff.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
  • Вопрос задан
  • 803 просмотра
Пригласить эксперта
Ответы на вопрос 3
@hurgadan
может так:
... 
hs.clock  between str_to_date('01.08.16 15:00','%d.%m.%Y %H:%i') 
and str_to_date('01.08.16 17:00','%d.%m.%Y %H:%i') 
...
Ответ написан
Комментировать
drno-reg
@drno-reg
см не кратко
как-то так думаю он будет выглядеть

select h.name AS host_name, i.name AS item_name, i.key_ as item_key, FROM_UNIXTIME(hs.clock) AS last_time, hs.value, hs.logeventid
from 
  hosts h 
  join items i on h.hostid = i.hostid
  join history_log hs on i.itemid = hs.itemid
where 
   DATE_FORMAT(FROM_UNIXTIME(hs.clock/1000), '%Y-%m-%d %H:%i:%s') 
BETWEEN STR_TO_DATE('2016-08-01 15:00:00','%Y-%m-%d %H:%i:%s') 
AND STR_TO_DATE('2016-08-01 17:00:00','%Y-%m-%d %H:%i:%s') 
and i.hostid = '10458' and hs.logeventid = '4624' and hs.logeventid = '4625'
order by last_time, item_name 
INTO OUTFILE '/tmp/logon_logoff.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
Ответ написан
@maxtm
Make money, not job
FROM_UNIXTIME -- прощай индексы.
Используйте нативный DATETIME как написал Евгений Войнов и будет счастье :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы