Usuário com melhor resposta
Formatação de data e datetime C#, SQL Server - AJUDA

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!!!
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
-
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
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 ? -
-
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- Sugerido como Resposta Gustavo Maia Aguiar sexta-feira, 26 de junho de 2009 13:57
-
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....
-
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....
-
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.
-
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 -
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!!! -
-
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.comPivoteando, 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- Sugerido como Resposta Gustavo Maia Aguiar 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”. -
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
-
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