SQL Data da delphi

di il
5 risposte

SQL Data da delphi

Buon giorno,
volevo sapere come posso aggiungere una condizione in un sql scritto tramite il codice per prendere il mese di riferimento tramite una variabile (esempio x = 1/09/2021) in questo caso devo prendere tutto settembre
che condizione potrei fare per richiedere a sql tutto il mese?

ah x prende il valore del parametro passato dalla function della query

grazie mille

5 Risposte

  • Re: SQL Data da delphi

    f.developer ha scritto:


    volevo sapere come posso aggiungere una condizione in un sql scritto tramite il codice per prendere il mese di riferimento tramite una variabile (esempio x = 1/09/2021) in questo caso devo prendere tutto settembre
    che condizione potrei fare per richiedere a sql tutto il mese?
    Innanzitutto, devi trasformare tutti i valori che sono utilizzati nello statement SQL in parametri, ovvero devi sostituirli con un "segnaposto" che andrai poi a valorizzare prima di eseguire la query e che di fatto consente di evitare concatenamenti nel comando e permette di riutilizzare sempre la stessa query, variando appunto solamente i valori assegnati ai parametri.

    Il ragionamento che dovrai fare è questo: tutti i record di settembre, ad esempio, sono compresi nell'intervallo che va dal primo giorno del mese (01/09) all'ultimo giorno (30/09), pertanto dovrai filtrare quei record che nel campo con la data di riferimento hanno un valore compreso nel range indicato.

    Un esempio in pseudo-SQL:
    
    SELECT FROM Tabella WHERE (Data >= :Inizio) AND (Data <= :Fine)
    
    Prima di eseguirla, devi impostare Inizio e Fine correttamente, come spiegato sopra.

    Se hai difficoltà nel trovare il numero dell'ultimo giorno del mese di riferimento, un espediente è quello di trovare il primo giorno del mese successivo e sottrarre - ad esempio - un millisecondo da quella data, oppure mantenere comunque il primo giorno del mese seguente come data di fine dell'intervallo, ma usando la condizione (Data < :Fine), ovvero togliendo il caso di uguaglianza e verificando solo che sia minore.

    Ciao!
  • Re: SQL Data da delphi

    Grazie.
    domanda: ma se io non sò so esattamente il mese ma solo all'esecuzione della query come posso impostare i fattori di fine soprattutto la fine
  • Re: SQL Data da delphi

    f.developer ha scritto:


    ma se io non sò so esattamente il mese ma solo all'esecuzione della query come posso impostare i fattori di fine soprattutto la fine
    Scusa, come fai a filtrare i dati per un mese di riferimento se non sai qual è quel mese?
    Lo scegli a caso?
  • Re: SQL Data da delphi

    No prendo il valore di un TDateTimePiker e lo passo come variabile nella function che fa la query
  • Re: SQL Data da delphi

    f.developer ha scritto:


    No prendo il valore di un TDateTimePiker e lo passo come variabile nella function che fa la query
    Se il valore acquisito dall'utente è un TDateTime, come probabile che sia, basta estrarre dallo stesso le componenti di anno, mese, giorno, ecc. usando la funzione e, usando l'informazione del mese, creare le due date di inizio e fine dell'intervallo (quindi il primo del mese selezionato - o meglio estratto dalla data/ora selezionata - e il primo del mese successivo a questo).

    A questo punto, alla funzione che esegue la query (o direttamente nella stessa, a seconda di come si è scelto di scrivere il codice) si esegue la query filtrando i record per la data compresa tra quella di inizio e fine precedentemente determinate.
Devi accedere o registrarti per scrivere nel forum
5 risposte