Calcolo della diferenza di una data con quella odierna

di il
5 risposte

Calcolo della diferenza di una data con quella odierna

Per poter cancellare i record più vecchi di un certo periodo dalla data odierna, ho provato ad usare la funzione datadiff in una query ma ottengo un errore di incongruenza dei valori.
Per semplicare le prove ho creato il db con una semplice maschera e i 3 campi di data vecchia, data odierna ed il terzo con il risultato che mi da lo stesso errore che non capisco.
In pratica nel campo origine dei dati del terzo campo ho messo la formula =Datadiff("d";[campo1];Date())
dove può esserci l'errore?
vorrei allegare il db di test ma forum non me lo consente
Grazie mille per l'aiuto

5 Risposte

  • Re: Calcolo della diferenza di una data con quella odierna

    Se scrivi la formula in QBE dal generatore non devi usare "d" per definire i Giorno, ma "g" in quanto in quel modo si attiva la traduzione di lingua con le relative accezioni Locali.
  • Re: Calcolo della diferenza di una data con quella odierna

    Bravissimo, grazie. Sono sempre le cose + semplici che ti fregano.
    Però devo continuare a chiedere aiuto.
    Ho creato una query per flaggare gli utenti che non si presentano da + di 1 anno che hanno un campo non-attivo si/no nella tabella
    L'SQL della query è
    UPDATE utenti SET utenti.[non_attivo] = -1
    WHERE ((DateDiff("d",[utenti].[ultimo_prelievo],Date())>365));

    mi succedono 2 cose: la prima chela query non fa nulla , la seconda che quando la salvo, chiudo, eseguo e riapro il testo dei criteri me lo ritrovo nella seconda colonna.
  • Re: Calcolo della diferenza di una data con quella odierna

    Prova a scrivere true invece di -1
    Il fatto abbia creato una nuova colonna in QBE e solo perché il criterio NON è specifico di un Campo come sarebbe se scrivessi Data=Date(), tu nella.sostanza generi un campo calcolato.

    P.s. potevi mettere nel datediff "a" ed ovviamente 1 come livello.
  • Re: Calcolo della diferenza di una data con quella odierna

    Grazie ancora ma ho fatto qualche passo avanti nel debug.
    la query funziona per i criteri di data ma non aggiorna nessun campo. Per prova ho provato ha cercare di modificare un altro campo (il nome) con vvv e come risultato ho ricevuto i record che rispondono ai criteri di data ma con i valori esistenti e non variati. Quindi il mio problema è che ho da qualche parte c'è un blocco agli aggiornamenti ma solo per questa query. altre parti del programma funzionano in update. Per esempio in un'altra maschera aggiorno correttamente il campo ultimo_prelievo che uso qui.
  • Re: Calcolo della diferenza di una data con quella odierna

    Ho risolto !!!
    Ho cancellato la query, ricreata in modalità visualizzazione e provato che faceva il sort, poi cambiata in aggiornamento con valore -1 e funziona.
    Cosa avesse prima non lo so, ma l'informatica sa anche essere crativa.

    grazie ancora : è bello sapere di avere qualcuno con cui scambiare consigli.
Devi accedere o registrarti per scrivere nel forum
5 risposte