Problema con formato date su Server

di il
6 risposte

Problema con formato date su Server

Buongiorno, ho un problema con il formato delle date.
Devo popolare una tabella su un server sql. Il campo data sul server è impostato a Data/ora. Faccio l' insert SQL ma la data nel campo che mi interessa è in formato americano ma io la voglio in formato italiano. DD/MM/YYYY mm:ss.

Ho provato a formattare il formato anche in stringa ma niente.

Mi potete aiutare?

Uso VB.net

6 Risposte

  • Re: Problema con formato date su Server

    Nella select devi rileggere il valore con:
    FORMAT([Tua_Data],'dd/MM/yyyy')
  • Re: Problema con formato date su Server

    Salve,
    se il server sql e' SQL Server, il formato della data non ha un senso in se', in quanto le date vengono archiviate in formato proprietario, e la SOLA VISUALIZZAZIONE e' in formato "leggibile"... tale formato di visualizzazione viene codificato in base alla Locale del account loggato... se le sue impostazioni (Management Studio -> Security -> Logins -> nomeAccount -> Properties -> proprieta' "Default Language" ) sono "Italiano", le date (ed anche i numeri) vengono visualizzati in formato italiano, diversamente vengono ovviamente rispettate le impostazioni della Locale prescelta...

    Detto questo, le date vanno "passate" alle istruzioni DML in un formato riconoscibile al momento dell'esecuzione, quindi, nel caso di impostazione di Locale in italiano per il l'account in esecuzione, vanno formattate rispettando tale impostazione al fine di evitare che i "mesi" diventino "giorni" e viceversa... SQL Server, per evitare tale problematica, accetta di default anche la formattazione standard ISO, quindi ad esempio "yyyyMMdd" e "yyyy-MM-dd", che NON sono interpretabili se non come codificato, quindi risolvono de facto la problematica, e tale valorizzazione e' quella preferibile in assoluto in quanto NON legata alle impostazioni di localizzazione dello specifico account.

    saluti omnia
    --
    Andrea
  • Re: Problema con formato date su Server

    Concordo con asql,
    se poi ho proprio bisogno del formato italiano lo gestisco nel codice:
    Dim MiaData As DateTime = DateTime.Now.ToLocalTime  
            MiaData= DateTime.Parse(MiaData, New CultureInfo("it-IT"))
    ciao
  • Re: Problema con formato date su Server

    Per adesso ho risolto così e funziona.
    
    Imports System.Globalization
    
    Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    
           
            Dim dDate As DateTime = DateTime.Parse(Now, CultureInfo.InvariantCulture)
           
    ' per invertire ancora se serve
    Dim strDayFirst As String = Format(dDate, "MM/dd/yyyy HH:MM:ss")
    
            TextBox1.Text = dDate
            TextBox2.Text = strDayFirst
        End Sub
    
    
    End Class
    
    proverò anche come dice Flavio

    Grazie per la spiegazione

    Ciao
  • Re: Problema con formato date su Server

    Ciao,
    se vi può essere di aiuto anche io avevo avuto problemi con la lingua dei server, ho risolto in questo modo:

    Nel WebConfig ho inserito questo codice:
    <system.web>
    <globalization culture="it-IT" uiCulture="it-IT" />
    </system.web>

    Poi mi sono creato una classe dove formatto la data in fase di memorizzazione nel database MySQL, che nella textbox o altro controllo è scritta in italiano ma in fase di insert o update viene fomattata nel formato corretto

    Imports Microsoft.VisualBasic

    Public Class ConvertData

    Public Shared Function GetDataForMySql(ByVal Data As DateTime) As String
    Return "" & Data.Year & "/" & Data.Month & "/" & Data.Day & ""
    End Function

    Public Shared Function GetDataForMySqlHM(ByVal Data As DateTime) As String
    Return "" & Data.Year & "/" & Data.Month & "/" & Data.Day & " " & Data.Hour & ":" & Data.Minute
    End Function
    End Class

    Per la insert o Update dalla pagina web la gestisco in questo modo
    ConvertData.GetDataForMySql(txtData.Text))

    Ciao
  • Re: Problema con formato date su Server

    Ottimo
Devi accedere o registrarti per scrivere nel forum
6 risposte