none
Formatação de data e datetime C#, SQL Server - AJUDA RRS feed

  • Pergunta

  • Ola,
    bom primeiro de tudo, estou com um problema, eu criei uma coluna DATA como datetime no sql server, e ele pega MM/dd/yyyy,  entao no visual studio eu tenho um dateTimePicker, q pega a data dd/MM/yyyy e TAMBEM a hora.

    gostaria de saber como eu mudo no SQL pro formato portugues ( dd/MM/yyyy ), pois ja mudei no visual studio para o formato ingles e nao deu certo.

    e tambem queria saber como eu faço para pegar SÓ a DATA no datetimePicker.


    Obrigado!!!
    sexta-feira, 26 de junho de 2009 12:45

Respostas

  • Olá Colega

    Caso não tenha resolvido este problema, vai ai:

    Vá no Sql Server Enterprise Manager
    click em Security, depois click em Logins
    vai aparecer o usuário do seu banco de dados
    click sobre ele com o botão direito do mouse e vá em propriedades
    na aba General, escolha o banco de dados e a linguagem Brazilian.
    Re-inicie o Sql Server e pronto.

    Com os procedimentos acima vc muda a data de mm/dd/yyyy para dd/mm/yyyy resolvendo seu problema de data.

    espero ter ajudado.
    Abinálio
    • Sugerido como Resposta Fernanda Simões quarta-feira, 29 de julho de 2009 14:26
    • Marcado como Resposta Fernanda Simões segunda-feira, 3 de agosto de 2009 19:37
    quarta-feira, 22 de julho de 2009 15:20
  • Luciano,

    Uma configuração que pode ser feita é sobre o usuário usado para conexão com o SQL Server, nas propriedades dele existe a propriedade "Language". Mude para Português que deve resolver esse seu problema.


    Abraço
    Classifiquem as respostas. O Fórum agradece!!
    • Sugerido como Resposta Fernanda Simões quarta-feira, 29 de julho de 2009 14:26
    • Marcado como Resposta Fernanda Simões segunda-feira, 3 de agosto de 2009 19:37
    quarta-feira, 22 de julho de 2009 16:29

Todas as Respostas

  • consegui pegar só a data no datetimepicker....


    agora meu maior problema é que qdo eu escolho um dia MAIOR q 12 ele da erro, ou seja no primeiro campo do SQL ele esta achando q é o mes, entao ele nao deixa ser maior q 12....

    como eu resolvo isso ?
    sexta-feira, 26 de junho de 2009 12:52
  • Ola Luciano,

    Vc pode usar o convert para aceitar esta data.

    declare @data varchar(10)
    set @data = '13/06/2009'
    
    select convert(datetime,@data ,103)

    att.

    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    sexta-feira, 26 de junho de 2009 13:27
    Moderador
  • Bom Dia,

    Não use nenhum formato que não o YYYYMMDD no SQL Server. Se você usar esse formato nunca terá problemas com configurações de data.

    Para qualquer outro formato, você pode mudar no Default Language do usuário ou com a instrução SET DATEFORMAT. Nenhuma das duas é uma solução ideal. O Default Language é apenas um por usuário e se o usuário precisar de configurações diferentes você terá problemas. O SET DATEFORMAT resolve mas se for colocado dentro de uma SP levará a recompilação.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como importar e exportar imagens entre o SQL Server e o File System ? – Parte II
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!612.entry
    Classifique as respostas. O seu feedback é imprescindível
    sexta-feira, 26 de junho de 2009 13:56
  • agora verifiquei atraves do select * from table que na minha coluna DATA os dados estao entrando assim : YYYY/dd/MM 00:00:00

    e nao encontrei NENHUM jeito de moficar para esse formato quando eu insiro os dados pelo visual studio......

    no visual studio eu uso essa syntaxe:



    DateTime novaData = dATADateTimePicker.Value.Date;

    SqlCommand novo = new SqlCommand("INSERT INTO Nomes(DATA, ADALBERTO) VALUES(convert(datetime,'" + novaData + "',111),'" + richTextBox1.Text + "')", novaCon);


    ja tentei varios formatos, 120,102,101

    TODOS eles, quando eu digito um dia MAIOR que 12, da erro....


    sexta-feira, 26 de junho de 2009 14:01
  • agora verifiquei atraves do select * from table que na minha coluna DATA os dados estao entrando assim : YYYY/dd/MM 00:00:00

    e nao encontrei NENHUM jeito de moficar para esse formato quando eu insiro os dados pelo visual studio......

    no visual studio eu uso essa syntaxe:



    DateTime novaData = dATADateTimePicker.Value.Date;

    SqlCommand novo = new SqlCommand("INSERT INTO Nomes(DATA, ADALBERTO) VALUES(convert(datetime,'" + novaData + "',111),'" + richTextBox1.Text + "')", novaCon);


    ja tentei varios formatos, 120,102,101

    TODOS eles, quando eu digito um dia MAIOR que 12, da erro....


    sexta-feira, 26 de junho de 2009 14:08
  • entao, no sql server quando eu mando um SELECTO * FROM Nomes, na coluna DATA, aparece assim YYYY/DD/MM 00:00:00

    e nao tem nenhum formato 120,111 q converta pra esse modo quando eu insiro pelo visual studio
    minha sintaxe :


    SqlCommand novo = new SqlCommand("INSERT INTO Nomes(DATA, ADALBERTO) VALUES('" + dATADateTimePicker.Value.Date + "','" + richTextBox1.Text + "')", novaCon);


    ja tentei converter para 102,120, e nao da certo, SEMPRE q eu coloco um dia maior que 12, ele da esse erro :

    The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.


    sexta-feira, 26 de junho de 2009 14:16
  • Olá Colega

    Caso não tenha resolvido este problema, vai ai:

    Vá no Sql Server Enterprise Manager
    click em Security, depois click em Logins
    vai aparecer o usuário do seu banco de dados
    click sobre ele com o botão direito do mouse e vá em propriedades
    na aba General, escolha o banco de dados e a linguagem Brazilian.
    Re-inicie o Sql Server e pronto.

    espero ter ajudado.
    Abinálio
    sexta-feira, 17 de julho de 2009 15:34
  • Abnálio,

    Vc efetuou os teste? deu certo?

    pois a language brazilian, tem a data no formato dmy  e ele esta passando YDM (que não conheco nenhuma lingua que use ete formato)
    vc não consegue fazer esta formatação na sua aplicação?

    Att.
    Marcelo Fernandes

     


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    sexta-feira, 17 de julho de 2009 16:24
    Moderador
  • vou tentar aqui fazer o que o abnalio disse,

    pois é Marcelo, eu tbm não conheço nenhum formato de data ydm, mas ele esta recebendo assim, por isso estranhei.


    []'s
    sexta-feira, 17 de julho de 2009 16:31
  • Boa Tarde,

    Os idiomas chinês e japonês utilizam o formato YYYY MM DD. Alterações na configuração do usuário não necessitam de reiniciar o SQL Server.
    Cabe lembrar que se sua string passar a data no formato YYYYMMDD (sem hífens) você não terá nenhum tipo de problema em relação as essas configurações.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Pivoteando, Despivoteando, Transpondo, Invertendo Colunas e Linhas no SQL Server
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!629.entry


    Classifique as respostas. O seu feedback é imprescindível
    sexta-feira, 17 de julho de 2009 17:22
  • Luciano,

    Você conseguiu solucionar o seu problema?
    Caso afirmativo poste a solução para que outras pessoas se beneficiem.

    Att,
    Fernanda


    “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    segunda-feira, 20 de julho de 2009 14:42
  • Olá Colega

    Caso não tenha resolvido este problema, vai ai:

    Vá no Sql Server Enterprise Manager
    click em Security, depois click em Logins
    vai aparecer o usuário do seu banco de dados
    click sobre ele com o botão direito do mouse e vá em propriedades
    na aba General, escolha o banco de dados e a linguagem Brazilian.
    Re-inicie o Sql Server e pronto.

    Com os procedimentos acima vc muda a data de mm/dd/yyyy para dd/mm/yyyy resolvendo seu problema de data.

    espero ter ajudado.
    Abinálio
    • Sugerido como Resposta Fernanda Simões quarta-feira, 29 de julho de 2009 14:26
    • Marcado como Resposta Fernanda Simões segunda-feira, 3 de agosto de 2009 19:37
    quarta-feira, 22 de julho de 2009 15:20
  • Luciano,

    Uma configuração que pode ser feita é sobre o usuário usado para conexão com o SQL Server, nas propriedades dele existe a propriedade "Language". Mude para Português que deve resolver esse seu problema.


    Abraço
    Classifiquem as respostas. O Fórum agradece!!
    • Sugerido como Resposta Fernanda Simões quarta-feira, 29 de julho de 2009 14:26
    • Marcado como Resposta Fernanda Simões segunda-feira, 3 de agosto de 2009 19:37
    quarta-feira, 22 de julho de 2009 16:29