2016-12-29 15 views
0

日付が今日またはそれ以上の行を選択する必要があり、現在時刻の10分前の時刻のレジスタのみを選択できます。私の疑問は、それを「日時計」型で行う方法です。以下はクエリです。日時に基づいて行を選択する方法

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 ... 

EDIT

のようなものになります。すなわち、

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

12月30日の日付を持つ行でこれを行い、その時刻がたとえば1PMで、現在の日時が2PMの12月29日の場合、そのレジスタは選択されません。 –

+0

TIME_TO_SEC(TIMEDIFF(now、)、tb_time))は、時差を秒数current_time - tb_timeに変換します。あなたのシナリオは選択されない-veの値を与えます。 –

+0

私はTIME_TO_SECを使用するとdatetime型の時刻だけを変換します。私はそれを得たと思う。私はそれを試してすぐに結果を投稿するつもりです。 –

関連する問題