Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187

    Update campo flag nel Database

    Ciao a tutti ho questa query:

    UPDATE PRODOTTI SET FLGSOSPENDI=ON WHERE DATA_FINE < 28/12/2005

    ossia devo aggiornare il campo flag (si/no) del DB qualora la data fine sia minore della data odierna (che ricavo con il date() ), però anche se eseguo la query direttamente nel DB non viene chekkato il campo FLGSOSPENDI come mai? :master:

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    1) Potrebbe non riconoscere la data: il db ragiona all'inglese, yyyy-mm-dd quindi ti consiglio di impostare il campo data come campo testo a 10 caratteri formattato in quel modo.
    2) Il campo si/no esiste solo su Access pertanto non è affatto standard. Si flagga mettendo TRUE ma ti consiglio di passare ad un campo numerico di tipo byte 0/1 molto più uniforme tra diversi db.

    Roby

  3. #3
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187
    Allora la cosa strana è questa se imposto la query in questo modo:

    UPDATE PRODOTTI SET FLGSOSPENDI=ON WHERE DATA_FINE > 28/12/2005

    ovvero mettendo il segno di maggiore tutti i campi vengono chekkati senza tener conto della data (nel mio DB ho impostato due i prodotti uno con data 12/01/2006 e l'altro 23/12/2005), perchè questo malfunzionamento?

    Questa seconda query funziona sia se inserisco come valora FLGSOSPENDI TRUE ON -1 l'altra non funziona con nessuno dei tre.

    Inoltre la maschera di input impostata nella tabella PRODOTTI per le date è la seguente: 00/00/0000;0;_ ossia il formato italiano

  4. #4
    Secondo me devi fare così:

    codice:
    UPDATE PRODOTTI SET FLGSOSPENDI = TRUE WHERE DATA_FINE > 28/12/2005
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    In pratica ti ho già risposto.

    Roby

  6. #6
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187
    In questo modo dico che DATA_FINE deve essere maggiore della data odierna ossia che se DATA_FINE è al 31/12/2005 mi sospende il prodotto... a me serve il contrario e comunque se faccio in questo modo mi blocca TUTTI i prodotti sia maggiori che minori di quella data... :master:

  7. #7
    che tipo di campo usi per la data?

  8. #8
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187
    Allora ho provato a fare in questo modo come mi ha suggerito Roby_72:
    il campo DATA_FINE l'ho trasformato da campo data in campo testo ho impostato il formato in "yyyy/mm/dd" ho rilanciato la query direttamente nel DB e ottengo che mi chekka sia la data 12/01/2006 che la 23/12/2005 quindi sono al punto di prima... uff :master:

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Originariamente inviato da nadia79
    Allora ho provato a fare in questo modo come mi ha suggerito Roby_72:
    il campo DATA_FINE l'ho trasformato da campo data in campo testo ho impostato il formato in "yyyy/mm/dd" ho rilanciato la query direttamente nel DB e ottengo che mi chekka sia la data 12/01/2006 che la 23/12/2005 quindi sono al punto di prima... uff :master:
    Vediamo la query che hai usato in questo caso?

    Roby

  10. #10
    campo testo per la data ... OK

    formato da usare ... YYYYMMDD invece di yyyy/mm/dd

    query da usare
    UPDATE PRODOTTI SET FLGSOSPENDI=ON WHERE DATA_FINE < '20051228'

    prova e vedrai

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.