Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118

    Problema date che vanno dall'italiano all'americano e viceversa....

    Ragazzi non ne sto capendo più niente.......ho questo codice:

    codice:
    SquX="select count(id) as episod, sum(datediff('n',(orainc),(orafine))) as forse, sum(datediff('n',(oraingpazbop),(orauscipazbop))) as blocco, sum(datediff('n',(ingrpaz),(uscsala))) as pazsala, "& tipo &"  from principale where dtt >= #"& da&"# and dtt <= #"& axx &"#  group by "& tipo &";"
    che mi da a video:

    codice:
    select count(id) as episod, sum(datediff('n',(orainc),(orafine))) as forse, sum(datediff('n',(oraingpazbop),(orauscipazbop))) as blocco, sum(datediff('n',(ingrpaz),(uscsala))) as pazsala, gropet from principale where dtt >= #01/06/2006# and dtt <= #15/06/2006# group by gropet;
    Notate 01/06/2006 come data, ebbene mi tira fuori tutti i record dal 06/01/2006. Infatti se faccio un copia ed incolla in access mi da: in sql 01/06/2006 ma se vado in struttura mi da 06/01/2006.
    Ho pure messo session.lcid=1040


  2. #2
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Di default qualsiasi database access memorizza la data all'inglese, per questo succedono casini immani quando cerchi di recuperare da codice asp utilizzando le funzioni della data, soprattutto se (come fai tu) la data è inserita all'italiana.

    Perchè finchè metti il 14/08/2005 è chiaro che può essere solo che il 14 agosto...ma quando andrai ad inserire il 03/04/2005 sarà il 4 marzo o il 3 aprile?

    Pertanto intanto ti consiglio di inserire le date nel formato in cui il db se le aspetta (quindi all'inglese).

    Cambia il formato della data ed impostalo nel formato tipo AAAA/MM/GG.

    E' un modo decisamente più sicuro, certo darà qualche noia in più in inserimento, ma vedrai che sarai soddisfatto una volta che devi gestire i dati.

    Questa è un esempio di funzione che trasforma al momento dell'inserimento nel db, la data nel formato AAAA/MM/GG:
    codice:
    Function dataShort(dtData) 
    dataShort = year(dtData&"/"&right("00"&month(dtData),2)&"/"&right("00"&day(dtData),2)) 
    end Function
    . Inoltre la funzione richiede un valore data... devi prima fare la trasformazione,
    codice:
    data2 = dataShort(CDate(data2))
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  3. #3
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118
    Ok, le statistiche le farò utilizzando la data in americano, ma nell'immissione dati mi servirebbe il formato italiano. Alcune volte la data la inserisce corretta ( 05/06/2006) altre volte mette (05/06/2006). Ho mession il session.lcid in tutte le pagine ma niente........ .....suggerimenti?

  4. #4
    Utente di HTML.it L'avatar di Gio&Ste
    Registrato dal
    Jan 2001
    Messaggi
    643
    Hai risolto il tuo problema?

    Succede anche a me, ma è dovuto al fatto che ho 2 inserimenti diversi nel database.
    Giò

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    prima della select devi impostare
    session.lcid=1033
    e dopo la riporti a 1040,
    così la data viene trasformata nel formato inglese per la select.
    Io faccio così e non ho mai avuto problemi

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.