Bonjour,

Ca fait un moment que je tourne en rond. J'ai besoin d'extraire un enregistrement de ma base de données selon un champs datetime. Jusque la c'est assez simple.

Ca se complique, car je ne peux pas savoir exactement l'heure (décalage horaire). L'enregistrement peut être stocké selon:
- 2014-03-16 16:59:29
- 2014-03-16 17:59:29
- 2014-03-16 18:59:29
- .... ou pire :
- 2014-03-17 00:59:29

MAIS il me faut connaitre exactement les minutes et secondes.

Actuellement je fait un truc comme ca:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
	$expire1 	= $expire[2].'-'.$expire[1].'-'.$expire[0].' '.$expire[3].':'.$expire[4].':'.$expire[5]  ; // 2014-03-16 16:59:29
	$expire2 	= $expire[2].'-'.$expire[1].'-'.$expire[0].' '.($expire[3]+1).':'.$expire[4].':'.$expire[5]  ; // 2014-03-16 17:59:29
	$query 	= 'SELECT id FROM table WHERE (date_end='.$db->quote($expire1). ' OR date_end='.$db->quote($expire2) .')' ;
Evidement je pourrait tester tous les fuseaux horaires ... mais c'est pas terrible.

L'idéal serai d'utiliser like avec les heures et un AND pour le jour +/- 1 jour, quelque chose du genre:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
	$testheure 	= $expire[2].'-'.$expire[1].'-'.$expire[0].' %%:'.$expire[4].':'.$expire[5]  ; // 2014-03-16 %%:59:29
	$testjour 	= $expire[2].'-'.$expire[1].'-'.$expire[0] ; // 2014-03-16 
	$query 	= 'SELECT id FROM table WHERE (date_end LIKE '.$db->quote($testheure).' AND date_end= TODAY(1, '.$db->quote($testjour).') )' ;
Et meme ca j'arrive pas.

Si quelqu'un a une idée, ça m'enlèverai une épine du pied, et une grosse !

Cédric