2016-12-29 4 views
0

날짜가 오늘 또는 그 이상인 행을 선택해야하며 현재 시간보다 10 분 전의 시간대 인 레지스터 만 선택할 수 있습니다. 내 의심은 'datetime'유형으로이를 수행하는 방법에 있습니다. 아래는 쿼리입니다.날짜 시간을 기준으로 행을 선택하는 방법

SELECT 
    GROUP_CONCAT(timee.nome_time 
     ORDER BY timee.nome_time 
     SEPARATOR ' X ') AS nome_time, 
    partida.id, 
    DATE_FORMAT(partida.data_hora, '%d/%m/%Y %H:%i') AS data_hora, 
    partida.tb_cotacao_id 
FROM 
    tb_partida AS partida, 
    tb_time AS timee, 
    tb_partida_time AS partidaTime 
WHERE 
    (partida.id = tb_partida_id 
     && timee.id = tb_time_id) 
     AND (partida.flag_ativo = 1 
     AND partida.flag_cancelado <> 1 
     AND partida.flag_finalizado <> 1) 
     AND partida.tb_campeonato_id = 11 
GROUP BY partida.id 

정말 도움이됩니다. 미리 감사드립니다.

+0

where 절에 'date (partida.data_hora)> = date (now))'를 추가 하시겠습니까? – GurV

+0

http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql- 쿼리 – Strawberry

답변

0

TIME_TO_SEC(TIMEDIFF(now(),<datetime_field>)을 사용하면 시간차가 있으며 초 단위로 변환 할 수 있습니다. 이상 10 분은 바로 TIMEDIFF 내부의 매개 변수를 역으로 현재 시간을 10 분 이상 더 많은 시간이있는 행을 얻으려면이

SELECT ... FROM .. WHERE TIME_TO_SEC(TIMEDIFF(now() , tb_time)) > 600 ... 

편집

같은 것입니다. 즉,

SELECT ... FROM .. WHERE TIME_TO_SEC(TIMEDIFF(tb_time, now())) > 600 ... 
+0

내가 12 월 30 일 날짜가 있고 그 시간이 1PM이고 현재 날짜 시간이 12 월 29 일인 경우 2PM 레지스터가 선택되지 않을 것입니다, 그렇습니까? –

+0

TIME_TO_SEC (TIMEDIFF (now,), tb_time))은 시차를 초 current_time - tb_time으로 변환합니다. 시나리오는 선택되지 않는 -ve 값을 제공합니다. –

+0

자, TIME_TO_SEC을 사용하면 datetime 유형의 시간 만 변환합니다. 나는 그것을 얻었다 고 생각한다. 나는 그것을 시도하고 즉시 결과를 게시 할 것입니다. –

관련 문제