Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666

    Data, fino al 12 del mese è invertita

    Ciao ragazzi, ho inserito all'interno di un db il campo dataora, che richiama la data e l'ora nel quale l'utente ha eseguito l'accesso.

    L'inserimento nel db è questo:

    codice:
    dataora= rs("dataora")
    sql = "UPDATE [login] SET dataora = #"& now ()&"# WHERE id ="& rs("id")
    conn.Execute(sql)
    Nonostante nella pagina di login ci sia:

    codice:
    <% session.LCID = 1040 %>
    Fino al 12 del mese inverte i campi del giorno con quelli del mese, ecco per esempio oggi cosa visualizza:

    ultimo accesso: 09/02/2008 11.52.47

    Come posso risolvere in modo che l'inserimento sia corretto?

    Poi per richiamarlo non dovrebbero esserci problemi.
    AltF4

  2. #2
    Utente di HTML.it L'avatar di diddl
    Registrato dal
    Apr 2001
    Messaggi
    59
    ciao,

    che database utilizzi?

    se si tratta di mysql, ricorda che devi sempre inserire le date/ore nel formato yyyy-mm-dd hh-mm-ss

    Inoltre <% session.LCID = 1040 %> è un settaggio di VBscript che non influenza minimamente il database, ma soltanto lo script della pagina asp.


    Ciao!

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Originariamente inviato da diddl
    che database utilizzi?
    ACCESS

    Originariamente inviato da diddl
    Inoltre <% session.LCID = 1040 %> è un settaggio di VBscript che non influenza minimamente il database, ma soltanto lo script della pagina asp.
    Bè, lo scrivevo perchè visto che l'inserimento nel db lo fal o script con l'istruzione "now" pensavo che non potesse sbagliare.
    AltF4

  4. #4
    Utente di HTML.it L'avatar di diddl
    Registrato dal
    Apr 2001
    Messaggi
    59
    Uhm Access dovrebbe utilizzare il settaggio del sistema, che presumibilmente è in italiano, quindi a rigor di logica non dovrebbe nascerti l'errore.

    Tuttavia non sono sicuro di questo, potrebbe essere che a prescindere dal sistema Access utilizzi sempre la sintassi anglosassone.

    Il settaggio LCID influisce soltanto sullo script. Quindi se tu setti 1040 (italia) Now ti restituirà la data in formato italiano (giorno, mese, anno). Però non influisce sul db che evidentemente la legge in anglosassone (1033) e quindi inverte mese e giorno, a patto che sia una data accettabile (ovvio che un mese non può essere 31).

    Per risolvere il tuo problema puoi fare in due modi: setti 1033 (ma avrai date sempre in formato anglosassone) o ti crei una funzione apposita per inserire le date nel db, del tipo:

    Function DataDB(Data)
    DataDB = Year(Data) &"/& Month(Data) &"/"& Day(Data)
    End Function

    e ogni volta che inserisci una data in una sql fai:

    DataDB(Now)

    Ciao!

  5. #5
    Utente di HTML.it L'avatar di StegcO
    Registrato dal
    Aug 2008
    Messaggi
    371
    Io metto semplciemente, prima sella insert:

    Nome_Variabile = Year(Nome_Variabile)&"/"&Month(Nome_Variabile)&"/"&Day(Nome_Variabile)


    e la gira giusta

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Originariamente inviato da diddl

    Function DataDB(Data)
    DataDB = Year(Data) &"/"& Month(Data) &"/"& Day(Data)
    End Function

    e ogni volta che inserisci una data in una sql fai:

    DataDB(Now)
    Grazie! Così mi riporta la data nel formato corretto: 02/09/2008

    Ma con la funzione now avevo anche la possibilità di inserire l'orario nel db in questo formato hh:mm:ss

    Come posso aggiungerlo alla tua funzione?
    AltF4

  7. #7
    utilizzando

    hour(Data)
    minute(Data)
    second(Data)

    ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Fatto, solo con Hour(Data) e mi da errore, questo:

    Microsoft JET Database Engine error '80040e07'
    Syntax error in date in query expression '#2008/9/216#'.
    index.asp, line 26

    ecco le righe 25 e 26:

    codice:
    sql = "UPDATE [login] SET dataora = #"& DataDB(Now)&"# WHERE id ="& rs("id")
    conn.Execute(sql)
    AltF4

  9. #9
    come componi DataDB(Now)

    posta il codice

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Ecco:

    codice:
    <%
    	Function DataDB(Data)
    	DataDB = Year(Data) &"/"& Month(Data) &"/"& Day(Data) &""& Hour(Data)
    	End Function 
    %>
    Poi:

    codice:
    sql = "UPDATE [login] SET dataora = #"& DataDB(Now)&"# WHERE id ="& rs("id")
    conn.Execute(sql)
    AltF4

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.