• User

    Definire Variabile mysql

    Salve ragazzi, ho letto molte guide, ma non riesco a capire la sintassi per definire una variabile di formato DATE che prende i valori direttamente dal DB.

    avevo in mente qualcosa del genere:

    
    DECLARE Oggi SELECT NOW() DATE;
    DECLARE Ordine SELECT created_on FROM jos_virtuemart_order_items;
    DECLARE DURATA INT;
    

    il problema è che quando inserisco nella query @Oggi o @Ordine... è come se fossero 0, quindi penso che ci sia la sintassi sbagliata.


  • User

    ho provato a dichiarare e settare così le variabili, ma continuano a non funzionare.

    DECLARE Oggi DATETIME;
    SET Oggi = Now();
    DECLARE Ordine DATATIME;
    SET Ordine = created_on FROM jos_virtuemart_order_items;
    DECLARE DURATA INT;
    

  • User

    nessuno sa come si dichiara e si setta una variabile?!?! O.o


  • ModSenior

    Ciao Andrit87,
    devi avere pazienza è normale che durante il fine settimana possano non esserci risposte, in quanto gli utenti che conoscono la risposta possono non essere ancora passati nel forum.

    Per quanto riguarda il problema, la dichiarazione delle variabili si fà cosi:

    SET @nome_variabile='Valore'
    

    Mentre in DECLARE, se non mi sbaglio, dovrebbe essere utilizzato nelle procedure/funzioni, per cui restituisce errore per quello probabilmente.


  • User

    ok, ti ringrazio, ma il mio ultimo post era dato dal fatto, che vedevo risposte in altri topic e non nel mio, e non mi sembra ( da niubbo) una domanda eccessivamente complicata.

    Venendo a noi, ti ringrazio per la spiegazione, questa cosa non era chiara nelle guide che ho letto. ho scritto questo codice:

    SET @Oggi = Now();
    SET @Ordine = **jos_virtuemart_order_items**.**created_on**;
    SET @Durata = DATEDIFF(dw, @Oggi, @Ordine);
    

    La prima variabile(@Oggi) funziona, mentre la seconda (@Ordine) e conseguentemente anche la terza, non funzionano.

    Come di può vedere la variabile @Ordine prende i dati direttamente da un campo (created_on) all'interno di una tabella (jos_virtuemart_order_items). A me sembra giusta, ma evidentemente non lo è.

    Grazie 🙂


  • ModSenior

    Io non mai utilizzato queste cose, per cui ho solo una conoscenza base a livello teorico, ma a me non sembra sia possibile fare quello che dici tu per quanto riguarda @Ordine


  • User

    Ho parzialmente risolto in altro modo, comunque una query valida potrebbe essere questa:

    FROM_UNIXTIME(created_on, '%M, %Y') as Ordine 
    FROM jos_virtuemart_order_items 
    ```non l'ho provata però al momento e non penso lo farò dato che ho risolto :) spero possa essere un punto di partenza per chi ha il mio stesso problema.
    
    ciao e grazie