salve a tutti,
come mai questa semplice query:
non funziona?Codice PHP:
"DELETE FROM iputenti WHERE DAY('data')<DAY(NOW())";
ovviamente nel campo 'data' ho un valore di tipo DATE.
grazie. :)
salve a tutti,
come mai questa semplice query:
non funziona?Codice PHP:
"DELETE FROM iputenti WHERE DAY('data')<DAY(NOW())";
ovviamente nel campo 'data' ho un valore di tipo DATE.
grazie. :)
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()
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).
Credo basti[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]
"DELETE FROM iputenti WHERE data<NOW()"
la funzione NOW() restituisce solo gg/mm/aaaa oppure anche l'ora?
[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]
anche se in data ho solo YYYY-MM-DD?[supersaibal]Originariamente inviato da VaLvOnAuTa
Credo basti
"DELETE FROM iputenti WHERE data<NOW()" [/supersaibal]
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...)
sì va bene uguale.[supersaibal]Originariamente inviato da var
anche se in data ho solo YYYY-MM-DD? [/supersaibal]
NOW si può applicare sia a campi "DATE" che a campi "DATETIME"
ti ringrazio, sembra funzionare bene.[supersaibal]Originariamente inviato da VaLvOnAuTa
sì va bene uguale.
NOW si può applicare sia a campi "DATE" che a campi "DATETIME" [/supersaibal]
grazie anche a tutti gli altri, ovviamente. :)