Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    problema con semplice query

    salve a tutti,

    come mai questa semplice query:

    Codice PHP:
    "DELETE FROM iputenti WHERE DAY('data')<DAY(NOW())"
    non funziona?
    ovviamente nel campo 'data' ho un valore di tipo DATE.

    grazie. :)

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    probabilmente perchè è sbagliata. Nel senso che dovresti dire cosa non fa. Restituisce forse un errore? E quale?
    Inoltre è un po' strana, nel senso che fa riferimento solo al giorno del mese e se si intuisce cosa fa la funzione non è molto corretto da un punto di vista logico (a meno di altri controlli esterni). Nota: DAY richiede MySQL >4.1.1 altrimenti devi usare DAYOFMONTH()

  3. #3
    grazie per la risposta.
    il problema è che la query non fa nulla e non ritorna nessun errore.

    il mio obiettivo è semplicemente quello di eliminare i record con un valore nel campo data inferiore a quello della data di oggi.

    cioè, se in data ho 2005-03-25 la query mi deve cancellare tutti i record con valori di data precedenti (a partire da 2005-03-24).

  4. #4
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    [supersaibal]Originariamente inviato da var
    grazie per la risposta.
    il problema è che la query non fa nulla e non ritorna nessun errore.

    il mio obiettivo è semplicemente quello di eliminare i record con un valore nel campo data inferiore a quello della data di oggi.

    cioè, se in data ho 2005-03-25 la query mi deve cancellare tutti i record con valori di data precedenti (a partire da 2005-03-24). [/supersaibal]
    Credo basti
    "DELETE FROM iputenti WHERE data<NOW()"

  5. #5

    domanda

    la funzione NOW() restituisce solo gg/mm/aaaa oppure anche l'ora?

  6. #6
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003

    Re: domanda

    [supersaibal]Originariamente inviato da zip2k
    la funzione NOW() restituisce solo gg/mm/aaaa oppure anche l'ora? [/supersaibal]
    [supersaibal]Dal manuale di MySQL
    Returns the current date and time as a value in 'YYYY-MM-DD HH:MM:SS' or YYYYMMDDHHMMSS format, depending on whether the function is used in a string or numeric context.



    mysql> SELECT NOW();
    -> '1997-12-15 23:50:26'
    mysql> SELECT NOW() + 0;
    -> 19971215235026[/supersaibal]

  7. #7
    [supersaibal]Originariamente inviato da VaLvOnAuTa
    Credo basti
    "DELETE FROM iputenti WHERE data<NOW()" [/supersaibal]
    anche se in data ho solo YYYY-MM-DD?

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    come supponevo... quindi NON devi usare DAY() (altrimenti cancelli solo quelli che hanno un giorno del mese inferiore a quello attuale),
    che ne dici di:

    DELETE FROM iputenti WHERE str_to_date(data, "%Y%m%d")< str_to_date, NOW())

    (vedi sul manuale, sto andando un po' a memoria...)

  9. #9
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    [supersaibal]Originariamente inviato da var
    anche se in data ho solo YYYY-MM-DD? [/supersaibal]
    sì va bene uguale.
    NOW si può applicare sia a campi "DATE" che a campi "DATETIME"

  10. #10
    [supersaibal]Originariamente inviato da VaLvOnAuTa
    sì va bene uguale.
    NOW si può applicare sia a campi "DATE" che a campi "DATETIME" [/supersaibal]
    ti ringrazio, sembra funzionare bene.
    grazie anche a tutti gli altri, ovviamente. :)

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.