2011-07-06 2 views
1

J'ai créé une procédure stockée dans une base MySQLobtenir la date actuelle dans la procédure stockée dans une base MySQL

DELIMITER // 
CREATE PROCEDURE simpleproc() 
    BEGIN 

    SELECT YEAR(dtm), 
      WEEK(dtm), 
      b.x_title, 
      COUNT(b.x_id) 
     INTO OUTFILE '/appdata/reports01/result.csv' 
      FIELDS TERMINATED BY ',' 
      OPTIONALLY ENCLOSED BY '"'  
      LINES TERMINATED BY '\n' 
     FROM tbla a 
     JOIN tblb b ON b.x_id = a.x_id 
     WHERE plan_grp_id IN (10031, 10034) 
     AND dtm > '20110101' 
    GROUP BY YEAR(dtm), WEEK(dtm), a.x_id; 

    END // 


delimiter ; 

je dois faire deux choses

  1. INTO OUTFILE '/appdata/reports01/result.csv' doit être comme « INTO OUTFILE «/AppData/reports01/result- -horodatage en cours .csv »
  2. dtm> '20110101' doit être dtm> CURDATE() + 0.

Ce:

SELECT CURDATE() + 0 

... moi obtient le format '20110101', mais je ne peux pas l'utiliser dans la requête comme dtm > CURDATE() + 0

+0

Vous n'êtes pas sûr du nom du fichier. En ce qui concerne la deuxième chose, quel type est 'dtm'? Avez-vous essayé simplement 'dtm> CURDATE()'? –

+0

ouais .. J'ai essayé mais il dosent travail pour une raison quelconque. J'ai trouvé un travail pour ça .. dtm> (SELECT CURDATE() + 0). mais ne peux pas obtenir l'horodatage du nom de fichier .. – Gokul

Répondre

1

des variables d'utilisation. Récupère l'horodatage actuel et l'ajoute à la partie restante de la chaîne. Utilisez le mot-clé INTO pour obtenir la sortie de l'instruction SELECT dans une variable. Utilisez CONCAT() pour concaténer 2 chaînes.

Questions connexes