ho gruppo di date in formato AAAA-MM-GGMYSQL - Modifica anno di date 2020-2011
Ma ho tutto l'anno nel 2020-MM-DD
voglio cambiarlo 2011-MM-DD
Come posso ottenere questo risultato?
ho gruppo di date in formato AAAA-MM-GGMYSQL - Modifica anno di date 2020-2011
Ma ho tutto l'anno nel 2020-MM-DD
voglio cambiarlo 2011-MM-DD
Come posso ottenere questo risultato?
UPDATE YourTable
SET YourDateColumn = SUBDATE(YourDateColumn, INTERVAL 9 YEAR);
Grazie mille per la risposta. Ho appena provato e in realtà ha aggiunto 1 all'anno che ha reso la mia data dal 2020 al 2021. È la loro qualche funzione per diminuire l'intervallo? – Chinmay
Mi dispiace di aver sbagliato a digitare la mia domanda. In realtà Le mie date sono in formato 2020-MM-DD e voglio convertirlo in 2010-MM-DD. Mi dispiace tantissimo – Chinmay
@ChinmayMurugkar Per andare dal 2020 al 2011, usare 'SUBDATE (YourDateColumn, INTERVAL 9 YEAR)' Ho modificato la risposta per riflettere questo. –
USO ADDDATE(old_date, INTERVAL -9 YEAR)
Grazie per la risposta. Scusa se ho sbagliato a digitare la mia domanda. In realtà Le mie date sono in formato 2020-MM-DD e voglio convertirlo in 2010-MM-DD. Mi dispiace molto – Chinmay
Ho modificato la mia risposta per riflettere questo. La risposta è leggermente diversa da @Joe Stefanelli, ma funziona allo stesso modo. – Jason
UPDATE YourTable
SET YourDateColumn = ADDDATE(YourDateColumn, INTERVAL 1 YEAR)
WHERE YourDateColumn >= '2010-01-01'
AND YourDateColumn <= '2010-12-31';
Se la tabella in basso non ha un indice sul campo della data, si potrebbe ottenere via con questo:
UPDATE YourTable
SET YourDateColumn = ADDDATE(YourDateColumn, INTERVAL 1 YEAR)
WHERE YEAR(YourDateColumn) = 2010;
per risolvere il problema della data con 2020 andando a 2021 esegui questo:
UPDATE YourTable
SET YourDateColumn = ADDDATE(YourDateColumn, INTERVAL -1 YEAR)
WHERE YEAR(YourDateColumn) = 2021;
BTW Da quando ho copiato il codice originale di Joe Stefanelli, +1 per lui !!!
vorrei aggiungere (per ulteriori visitatori della domanda) che si può anche "update" positivamente più velocemente che con dichiarazione con la funzione SUBDATE
, credo sia abbastanza veloce, mentre per prese aprox. 1 ora per influenzare 2.3 trilioni di righe SUBDATE
ha reso la metà del tempo.
UPDATE Table SET DateTimeField = SUBDATE(DateTimeField, INTERVAL -x YEAR);
Dove x è il numero negativo che si desidera aggiungere come nuovo valore dell'anno. Ad essere sincero, ignoro perché questo accade, ma funziona.
Qual è il tipo di dati della colonna in questione? –
Il tipo di dati della colonna è la data – Chinmay
[This] (http://stackoverflow.com/questions/14491906/changing-year-in-mysql-date) uno è la soluzione più semplice –