Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107

    Problema confronto date con NULL

    Salve a tutti

    Devo fare una parte di query tipo questa:

    codice:
    and (year(d_rinnovo))>'2006'
    Ora... D_RINNOVO può assumere il valore di una data( es. 2006-05-04) ma anche NULL.

    QUando è null non riesco a far selezionare nulla (sia che metta minore o maggiore)

    Come posso fare?
    Guybrush Threepwood

  2. #2
    dipende da cosa vuoi ottenere dal NULL.... year(0000-00-00) rende NULL e NULL non e' ne maggiore, ne' minore, semplicemente non c'e'.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    il fatto è che il campo d_rinnovo può anche essere vuoto...però essendo null come posso fare x confrontarlo con una data?

    Il controllo che devo fare è : SE l'ANNO DI 'D_RINNOVO' è UGUALE ALL'ANNO CORRENTE
    Guybrush Threepwood

  4. #4
    Originariamente inviato da Threepwood
    il fatto è che il campo d_rinnovo può anche essere vuoto...però essendo null come posso fare x confrontarlo con una data?

    Il controllo che devo fare è : SE l'ANNO DI 'D_RINNOVO' è UGUALE ALL'ANNO CORRENTE
    se NULL non esiste, l'AND risponde con FALSE ed il campo scartato. non mi e' chiarissimo quello che cerchi. non servono tutte le parentesi tonde che metti.

    potresti mettere una if... ma ripeto non mi e' chiaro lo scopo.

    where etc...
    AND if(year(data) IS NOT NULL, year(data), year(default))

    in pratica verifica che year() non renda NULL, se e' vero usa la data, altrimenti mette un tuo default.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da Threepwood
    Il controllo che devo fare è : SE l'ANNO DI 'D_RINNOVO' è UGUALE ALL'ANNO CORRENTE
    Se hai un valore NULL come fai a confrontarlo?

  6. #6
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    appunto, è questo il problema.

    Al primo rinnovo, quel valore è NULL.

    Pensavo magari di far si che quando vale NULL me lo fa diventare (con quello che in php sarebbe un str_pad) uno 0000-00-00 ... ma non zo come
    Guybrush Threepwood

  7. #7
    Originariamente inviato da Threepwood
    appunto, è questo il problema.

    Al primo rinnovo, quel valore è NULL.
    quel campo data_scadenza e' praticamente inutile. Se hai il campo data_rinnovo o prima iscrizione che sia, calcoli la scadenza su quello. Non ti serve avere un campo specifico con la data di scadenza. Oppure se proprio ti piace averlo lo popoli al momento dell'inserimento.

    scadenza = curdate() + interval 1 year.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.