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

    Ho messo SQLServer in inglese e non vanno più le query...

    Ciao a tutti,
    Ho un server web con una trentina di siti internet che utilizzano SQLServer 2000 Enterprise in italiano.
    Proprio oggi ho cambiato server e mi hanno installato SQLServer 2000 Enterprise in inglese e non funzionano più alcune query nei miei siti web...
    Ovviamente sono i campi di tipo Datetime che adesso lui legge nel formato mm/gg/aaaa invece della forma italiana gg/mm/aaaa.
    Come si fa a ripristinare la lettura della data in modo normale?
    Ho visto che nelle impostazioni di sistema la data è nel formato giusto...

    Non dovrò cambiare tutte le query?

    Ciao
    Baciamo le mani... ThE GoDfAtHeR

  2. #2
    Utente di HTML.it L'avatar di seclimar
    Registrato dal
    Sep 2002
    Messaggi
    21,042
    piu' che altro dovresti usarle in un formato universalmente giusto!

    cerca info..nei forum su programmazione o su internet..
    devi usare le funzioni relative alla data

  3. #3
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    le date sono trattate in sqlserver indipendentemente dalla lingua e da come le vedi in enterprise manager. il formato che vedi in enterprise manager dipende invece dalla lingua di installazione.
    quindi le query delle tue applicazioni dovrebbero funzionare, se i campi sono definiti come datetime o simili
    Tutti vogliono parlare, nessuno sa ascoltare.

  4. #4

    Non vanno le query di aggiornamento...

    le query di select funzionano e mi visualizzano i dati correttamente ma quando faccio una insert o un update non funzionano:

    esempio:

    conn.execute("INSERT INTO Cart (ID,Data,Articolo) VALUES (4," & date() & ",'prova')"

    Non va perchè la funzione date() e now mi rispondono nel formato italiano e quando arrivano sul server vanno in errore...

    Ho già fatto una funzione di conversione e così funziona ma devo riportare tutte le modifiche su tutti i miei siti.

    non c'è modo di cambiare il formato di data dal registro o una roba del genere?
    Mi sembra stupido che un programma come SQLServer non ti faccia scegliere il formato che desideri solo perchè è installato in un altra lingua...

    Grazie

    Michele
    Baciamo le mani... ThE GoDfAtHeR

  5. #5
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    date() non è una funzione sql
    prova così

    conn.execute("INSERT INTO Cart (ID,Data,Articolo) VALUES (4," & getdate() & ",'prova')"
    Tutti vogliono parlare, nessuno sa ascoltare.

  6. #6

    lo so è una funzione asp

    Infatti date() è una funzione asp ed ormai sui miei siti ho usato questo metodo...

    Comunque ho capito... non c'è modo di risolvere il problema senza cambiare la logica delle mie pagine...

    Grazie comunque

    Ciao
    Baciamo le mani... ThE GoDfAtHeR

  7. #7
    io ho un problema molto simile....
    ho installato un db inglese e ho spostato i file da db italiano al nuovo db inglese.
    Mi succede una cosa strana ... ora lui vuole tutte le insert nel formato inglese anche se poi dentro lui li visualizza in italiano....anche io avevo messo tutte le session in modo che tutte le date lavorassero sempre e solo in formato italiano e ora non funzionano più non le query ma solo le insert e le update ((

    una domanda da farvi....ho pensato di usare le convert(smalldatetime, 'data', 103) ma come le uso in insert fatte in questo modo???


    set rsinserisci=server.createobject("ADODB.Recordset")
    sqlinserisci="select * from contatore"
    rsinserisci.open sqlinserisci,conn,3,3
    rsinserisci.AddNew
    rsinserisci("id_user")= session("id_user")
    rsinserisci("data")= datacontatore
    rsinserisci.Update

    lui mi dice che convert non è una funzione valida (e ha ragione visto che non è una funzione vb....come posso fare senza modificare proprio il tipo di query facendole diventare "insert into contatore (id_user, data) values....
    questa è piccola ma altre query sono vincolate dai campi quindi ho degli if all'interno e le query come sopra erano molto più funzionali
    c'è modo di risolvere???



    Fiory

  8. #8
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    ciao Fiorella,
    io per evitare grane mi sono costruito una funzione che ho salvato dentro sqlserver che tratta le date.
    vedi un po' se ti serve. ciao

    codice:
    /*
    La funzione ConvertiData si aspetta in entrata:
    - una stringa a 10 caratteri formattata aaaa/mm/dd
    - una stringa a 3 caratteri del tipo USA o ITA
    - restituisce una stringa che può essere usata per l'insert
    in un campo smalldatetime di sqlserver con conversione implicita
    su qualunque configurazione di sistemi operativi e preferenze internazionali
    per provarla in query analizer
    print dbo.convertidata('2003/12/25', 'USA')
    oppure
    print dbo.convertidata('2003/12/25', 'ITA')
    */
    CREATE FUNCTION ConvertiData 
    (@data nvarchar(10), @formato nvarchar(3))
    RETURNS nvarchar(10)
    AS
    BEGIN
    declare @Return nvarchar(10)
    select @return = case @formato
    when 'ITA' then RIGHT(@data, 2) + '/' + SUBSTRING(@data, 6,2) + '/' + LEFT(@data, 4)
    when 'USA' then SUBSTRING(@data, 6,2) + '/' + RIGHT(@data, 2) + '/' + LEFT(@data, 4)
    else 'null'
    end
    return @return
    end
    Tutti vogliono parlare, nessuno sa ascoltare.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.