View Full Version : [SQL] Update/Insert di date
Ciao, ho un problema con un'aggiornamento di una tabella.
Dunque, io dovrei selezionare tutti i record di Gennaio (DATA_FINE con mese 01) e cancellarli....e fin qui, tutto ok:
DELETE *
FROM PROVA_TABELLA
WHERE Month(DateValue(PROVA_TABELLA.DATA_FINE)) = 1;
Poi dovrei prendere i record della stessa tabella con mese 12, e inserirli con mese 1 (sempre nella stessa tab).
Io avevo pensato di usare una tab d'appoggio :
SELECT * INTO APPOGGIO_TABELLA FROM PROVA_TABELLA
WHERE Month(DateValue(PROVA_TABELLA.DATA_FINE)) = 12;
e anche questa funge.
Ma poi come faccio ad aggiornare tutte le Data_fine a mese 01 da mese 12 ??
Ho tentato con:
UPDATE APPOGGIO_TABELLA
SET MID(APPOGGIO_TABELLA.DATA_FINE,4,2);
ma non funge....
C'è una strada migliore ?
Motosauro
21-01-2008, 11:26
SET APPOGGIO_TABELLA.DATA_FINE=CONCAT(MID(APPOGGIO_TABELLA.DATA_FINE,1,2),'/01/',MID(APPOGGIO_TABELLA.DATA_FINE,7,4))
Prova così
Da quello che hai scritto non gli hai detto a cosa aggiornare
Io non userei una tabella d'appoggio, ma credo che vada bene
SET APPOGGIO_TABELLA.DATA_FINE=CONCAT(MID(APPOGGIO_TABELLA.DATA_FINE,1,2),'/01/',MID(APPOGGIO_TABELLA.DATA_FINE,7,4))
Prova così
Da quello che hai scritto non gli hai detto a cosa aggiornare
Io non userei una tabella d'appoggio, ma credo che vada bene
Grazie, funziona perfettamente!!
Ma senza tab.intermedia, tu come faresti ?
Motosauro
21-01-2008, 12:37
Grazie, funziona perfettamente!!
Ma senza tab.intermedia, tu come faresti ?
Elimini quelli di gennaio
Fai :
UPDATE tabella
SET campo_da_cambiare = valore_nuovo
WHERE condizione ;
nel tuo caso la condizione è quella che hai usato per riempire la tabella di appoggio.
Se sei certo di quello che stai facendo secondo me è meglio se vai diretto. Se invece stai pastrocchiando (occupazione peraltro sana e sacra :D ) ti conviene andarci cauto, ma questo lo saprai già ;)
P.S.
prego :)
Elimini quelli di gennaio
Fai :
UPDATE tabella
SET campo_da_cambiare = valore_nuovo
WHERE condizione ;
nel tuo caso la condizione è quella che hai usato per riempire la tabella di appoggio.
Se sei certo di quello che stai facendo secondo me è meglio se vai diretto. Se invece stai pastrocchiando (occupazione peraltro sana e sacra :D ) ti conviene andarci cauto, ma questo lo saprai già ;)
P.S.
prego :)
Stavolta non va bene, perchè facendo così, lui mi fa l'update dei record con mese 12 mettendoci mese 01, e sbaglia, visto che lui deve prendere i record con mese 12 e DUPLICARLI mettendo però 01....è per questo che ho messo la tab.d'appoggio....
Motosauro
21-01-2008, 13:24
Stavolta non va bene, perchè facendo così, lui mi fa l'update dei record con mese 12 mettendoci mese 01, e sbaglia, visto che lui deve prendere i record con mese 12 e DUPLICARLI mettendo però 01....è per questo che ho messo la tab.d'appoggio....
Ah, ok
non avevo capito che tu avessi necessità di duplicarli.
in questo caso la tabella d'appoggio ci sta tutta.
Forse si riesce a farlo lo stesso facendo un insert con un select dalla stessa tabella, ma non ne sono sicuro e comunque sarebbe un'inutile complicazione.
Scusa il fraintendimento :)
Ah, ok
non avevo capito che tu avessi necessità di duplicarli.
in questo caso la tabella d'appoggio ci sta tutta.
Forse si riesce a farlo lo stesso facendo un insert con un select dalla stessa tabella, ma non ne sono sicuro e comunque sarebbe un'inutile complicazione.
Scusa il fraintendimento :)
No, probabilmente mi son spiegato da cani io....tante volte ste istruzioni è più facile visualizzarle che spiegarle....grazie cmq lo stesso, con la tua dritta di prima, ho sistemato tutto in un bello script.
Motosauro
21-01-2008, 14:12
No, probabilmente mi son spiegato da cani io....tante volte ste istruzioni è più facile visualizzarle che spiegarle....grazie cmq lo stesso, con la tua dritta di prima, ho sistemato tutto in un bello script.
:D
:cincin:
Quando passi da Verona una bella pinta e siamo a posto :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.