Welcome to Sign in | Join | Help
in Search

sql datetime

Last post 05-15-2009, 6:20 by tudor.t. 19 replies.
Page 1 of 2 (20 items)   1 2 Next >
Sort Posts: Previous Next
  •  05-12-2009, 4:51 7145

    sql datetime

    Salutare!

    Exista vre-o posibilitate de a schimba formatul datei in sql? din en in ro ?

    daca vreau sa inserez data intr-un camp, trebuie sa il convertesc la sistemul englezesc adica din zz/ll/aa in ll/zz/aa, altfel imi da eroare!

    Multumesc!
  •  05-12-2009, 5:07 7146 in reply to 7145

    Re: sql datetime

    Ce folosesti ? C# ? T-SQL ?  VB.NET ? Altceva?
    Ca idee de baza : eu folosesc convertirea cu 121 prin formatul yyyy-MM-dd HH:mm:ss


    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  05-12-2009, 7:24 7147 in reply to 7145

    Re: sql datetime

    Cum inserezi datele? Ce format de date are campul cu pricina?
    Vezi si BOL ---> "CAST and CONVERT" ---> Date and time styles.
  •  05-12-2009, 7:54 7148 in reply to 7145

    Re: sql datetime

    Cel mai bine este să precizezi constantele de tip dată în forma 'yyyymmdd', deoarece este un format standard, neambiguu. Vezi şi:
    http://www.karaszi.com/SQLServer/info_datetime.asp

    Răzvan
  •  05-13-2009, 9:06 7150 in reply to 7148

    Re: sql datetime

    Am  rezolvat problema.

    Folosesc c# si sql server. In c# mi-am facut o functie care sa imi schimbe automat cultura ( din control panel regional settings) in clutura Ro, si am facut un alt cont in sql cu default language pe romanian. si acuma este ok.

    Problema era ca aveam o componenta de tipul dateTimePicker care returna data in formatul romanesc, iar server-ul era setat sa primeasca data in formatul en, si atuncea inserarea nu era posibila.

    Multumesc de sfaturi?

    aveam o solutie mai optima?

    david
  •  05-13-2009, 10:00 7151 in reply to 7150

    Re: sql datetime

    ungureandavid:
    Am  rezolvat problema.

    Folosesc c# si sql server. In c# mi-am facut o functie care sa imi schimbe automat cultura ( din control panel regional settings) in clutura Ro, si am facut un alt cont in sql cu default language pe romanian. si acuma este ok.

    Problema era ca aveam o componenta de tipul dateTimePicker care returna data in formatul romanesc, iar server-ul era setat sa primeasca data in formatul en, si atuncea inserarea nu era posibila.

    Multumesc de sfaturi?

    aveam o solutie mai optima?

    david

    MDa...
    1. Mie, ca user, nu imi place sa am de a face cu o aplicatie care imi schimba formatul de data din regional settings.
    2. Ce te faci daca user-ul deschide o a 2-a aplicatie dupa ce o deschizi tu - si aia schimba din nou regional settings ?|

    Ca raspuns posibil
    DateTimePicker are value -care este un DateTime.
    Ca sa inserezi, formateaza asa:
    "insert into tabela(cimp_data) values( " + transformaData(datetimepicker.value) + ")"

    unde
    public datetime transformaData(DateTime dt)
    {
    return "convert(datetime," + "'" + dt.ToString("yyyy-MM-dd") + "',21)";
    }

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  05-13-2009, 11:05 7152 in reply to 7151

    Re: sql datetime

    În VB se rezolvă cu:
    My.Application.ChangeCulture("ro-RO")
  •  05-13-2009, 11:24 7153 in reply to 7152

    Re: sql datetime

    B_gd_n[ ]Sahlean:
    În VB se rezolvă cu:
    My.Application.ChangeCulture("ro-RO")

    Nu recomand schimbarea culturii ca sa rezolvi o problema de BD ...Ce te faci daca vrei sa fie internationalizata?

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  05-13-2009, 11:28 7154 in reply to 7150

    Re: sql datetime

    Indiferent de modul în care au fost introduse de utilizator, valorile de tip datetime trebuie transmise către SQL Server:

    (a) într-un format neutru (aşa cum a scris Andrei, mai sus; dar preferabil în forma yyyymmdd, nu yyyy-mm-dd, deoarece acest format nu e complet neutru în SQL Server, vezi articolul lui Tibor Karaszi menţionat mai sus)

    sau, şi mai bine,

    (b) sub formă de parametri de tip datetime, într-un Command parametrizat, vezi de exemplu http://dotnetfacts.blogspot.com/2009/01/adonet-command-parameters.html.

    Răzvan
  •  05-13-2009, 11:57 7155 in reply to 7153

    Re: sql datetime

    ignatandrei:
    B_gd_n[ ]Sahlean:
    În VB se rezolvă cu:
    My.Application.ChangeCulture("ro-RO")

    Nu recomand schimbarea culturii ca sa rezolvi o problema de BD ...Ce te faci daca vrei sa fie internationalizata?

    Asta nu e o problemă "de BD" ... în primul rând.
    E o problemă a conversie a unui şir de caractere la o valoare tip dată calendaristică la nivelul aplicaţiei client.
  •  05-13-2009, 2:00 7156 in reply to 7150

    Re: sql datetime

    "Problema era ca aveam o componenta de tipul dateTimePicker care returna data in formatul romanesc, iar server-ul era setat sa primeasca data in formatul en, si atuncea inserarea nu era posibila."


    DateTimePicker-ul nu returneaza data intr-un format anume, ci ca o instanta a struct-ului DateTime, care e independent de vreo limba/culture anume..
    Folosind parametrii ADO.NET se scapa usor de problemele aferente reprezentarii unul date intr-un anumit format dependent de culture.

    As zice ca singurul loc in care conteaza formatul datei ar trebui sa fie la afisarea / citirea unei date introduse de utilizator (in UI), mai jos fiind normal sa se foloseasca doar datetime-uri in formate independente de limba..
  •  05-13-2009, 3:26 7157 in reply to 7154

    Re: sql datetime

    rsocol:
    Indiferent de modul în care au fost introduse de utilizator, valorile de tip datetime trebuie transmise către SQL Server:

    (a) într-un format neutru (aşa cum a scris Andrei, mai sus; dar preferabil în forma yyyymmdd, nu yyyy-mm-dd, deoarece acest format nu e complet neutru în SQL Server, vezi articolul lui Tibor Karaszi menţionat mai sus)

    sau, şi mai bine,

    (b) sub formă de parametri de tip datetime, într-un Command parametrizat, vezi de exemplu http://dotnetfacts.blogspot.com/2009/01/adonet-command-parameters.html.
    Răzvan


    Intr-advar aplicatia trebuie sa formateze "datetime" in vederea afisarii in functie de cultura, etc. Stocarea in BD e o alta "poveste"...
  •  05-13-2009, 4:02 7158 in reply to 7157

    Re: sql datetime

    DateTime..::.ToString Method (IFormatProvider) http://msdn.microsoft.com/en-us/library/ht77y576.aspx
    La scriere culture neutreal new CultureInfo("") si cred ca ajunge Smile
  •  05-14-2009, 10:36 7172 in reply to 7158

    Re: sql datetime

    provederii din Linq2sql sau entity framework nu stiu sa rezolve problemele astea automat .ma refer la diferentele de culturi dintre client si severul sql?
    Secolul XXI ori va fi religios ori nu va fi deloc
  •  05-14-2009, 5:21 7176 in reply to 7172

    Re: sql datetime

    Dupa cit de mult inteleg ei DB dpv date catalog nu cred ...
Page 1 of 2 (20 items)   1 2 Next >
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems