Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Insert date in ms access

    ciao ragazzi,

    ho una java desktop application che (purtroppo) deve interfacciarsi ad un "db" access,
    in una tabella di questo db ho un campo di tipo data/ora.

    diciamo che ho questa query:

    codice:
        stm=con.prepareStatement("insert into TABELLA (DATA) values(?)");
        stm.setString(1, "12/12/2012");      
        st.executeUpdate();
    naturalmente questo codice nn funziona, ho questa eccezzione a run time:
    java.sql.SQLException: [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi nell'istruzione INSERT INTO.

    ho provato anke con data del tipo "12-12-2012"
    e anke con
    codice:
        stm.setDate(1, Data.valueOf("12/12/2012"))
    potete aiutarmi?

    grazie in anticipo.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Al di là del fatto che su Access le date si specificano usando il cancelletto:

    codice:
    insert into TABELLA (DATA) values(#10/10/1980#)
    Quello che, però, devi passare alla PreparedStatement è un oggetto di tipo java.sql.Date. Un modo è questo:

    codice:
    import java.text.*;
    import java.sql.Date;
    ...
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    Date tuaData = new Date( sdf.parse("12/12/2012").getTime() );
    stm.setDate(1, tuaData);

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    G R A Z I E
    M I L L E ! ! ! !

  4. #4
    ok, la questione dell'inserimento è risolta,
    ma quando faccio un interrogazione al db per la data, questa mi ritorna in notazione
    yyyy-mm-dd, anke se il tipo data sul db è data in cifre gg/mm/aaaa e la data inserita è nel formato gg/mm/aaaa

    c'è un modo per avere dalla query la data in notazione gg/mm/aaaa?

    grazie ancora.

  5. #5
    up

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da maverick-f14
    ok, la questione dell'inserimento è risolta,
    ma quando faccio un interrogazione al db per la data, questa mi ritorna in notazione
    yyyy-mm-dd, anke se il tipo data sul db è data in cifre gg/mm/aaaa e la data inserita è nel formato gg/mm/aaaa

    c'è un modo per avere dalla query la data in notazione gg/mm/aaaa?

    grazie ancora.
    Il tipo di "visualizzazione" che è impostato nel DB non ha nulla a che vedere con il "formato" con cui i dati vengono letti dal DB.

    Per "formattare" una data (che non è nient'altro che un numero, all'interno dei calcolatori) si usa lo stesso SimpleDateFormat che ho usato nell'esempio precedente:

    codice:
    data = rs.getDate( ... );
    ...
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    System.out.println( sdf.format(data) );
    Prova anche a dare un'occhiata alla documentazione della classe SimpleDateFormat.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    ANCORA MILLE GRAZIE.

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.