2011-08-24 3 views
0

je dois le code suivant pour récupérer des lignes avec horodatage d'aujourd'hui:CakePHP lignes pour le mois Aller chercher en cours

$interactives_presented_today = $this->find('count', 
        array('conditions' => array('Tbsession.timestamp LIKE' => date("Y-m-d") . "%", 
               'Tbsession.action LIKE' => "%Interactive", 
               'Tbsession.username' => $user_id, 
              )) 
       ); 

Maintenant, je veux récupérer les lignes avec horodatage de ce mois-ci. Des idées? Merci beaucoup pour toute aide! :)

+0

Essayez d'extraire le mois de la '' Tbsession.timestamp et de le comparer avec le mois courant – Rikesh

+0

Merci pour votre réponse, mais je pense que mon problème est, savez-vous comment extraire de CakePHP? – Emkey

+0

laissez-moi avoir la valeur de 'Tbsession.timestamp' !! – Rikesh

Répondre

6
$this->find('all', array(
    'conditions' => array('MONTH(Tbsession.timestamp)' => date('n')) 
)); 
2

cela devient toutes les lignes qui sont moins de 1 mois:

$this->find('all',array(
    'conditions'=>array($this->alias.'.timestamp >'=>date('Y-m-d', strtotime("-1 month")) 
)); 

si vous voulez obtenir ce mois-ci:

$this->find('all',array(
    'conditions'=>array($this->alias.'.timestamp >'=>date('Y-m-00') 
)); 
+0

Cela obtiendrait toutes les lignes du mois précédent, n'est ce pas? – Emkey

+0

il obtiendrait toutes les lignes qui ont moins de 1 mois. Je vais modifier ma réponse. –

+0

avez-vous considéré ma valeur d'horodatage est quelque chose comme 2010-09-23 13:04:58? – Emkey

1

Vous pouvez utilisez la fonction mysql DATE_FORMAT().

$this->find('all',array(
'conditions'=> array('DATE_FORMAT(Tbsession.timestamp,"%m") = "'.date("m").'"') 
)); 
Questions connexes