Ir para conteúdo
Fórum Script Brasil
  • 0

Converter String Em Data


vitorarouca

Pergunta

Bom dia!

Eu queria converter uma string em data...

Eu estou a usar o SQL Server e estou a fazer a inserção através de uma stored procedure assim:

[b]spagenda @opcao='i', @datahora = '18-01-2005 10:18:26', @codtecnico = '03', @codcliente = 'INFORSHOW', @observacoes = 'teste' [/b]
e dá-me o seguinte erro:
Error converting data type varchar to datetime.
No StoredProcedure está assim:
IF @opcao = 'i'
BEGIN	
       DECLARE @dataconvertida DATETIME
	SELECT @dataconvertida=convert(datetime,@datahora)
  
	INSERT INTO
  agenda
  (datahora,codtecnico,codcliente,observacoes)
	VALUES
  @dataconvertida,@codtecnico,@codcliente,@observacoes)
END

Será que alguém me pode ajudar!!!

Obrigado

Vitor Arouca

Link para o comentário
Compartilhar em outros sites

21 respostass a esta questão

Posts Recomendados

  • 0
Error converting data type varchar to datetime.

Vitor!!!

Qual formato em que sua data esta no SQL Server ?

Brasileiro ou Americano ?

Teoricamente, seu código esta corretissimo. Deveria funcionar na boa....

mas pela mensagem de erro, é um erro na conversão... ou o formato da data a ser inserida não esta correspondendo com o formato atual do BD

Abraços!!

Link para o comentário
Compartilhar em outros sites

  • 0

o formato é o seguinte:

04-11-2003 19:09:21

huh.gif Bom, nunca tive problemas com este tipo de coisa, mas vai um teste!

OBS: não sei bem, programação no SQL Server 2000

IF @opcao = 'i'
	BEGIN
	DECLARE @dataconvertida AS DATETIME("hh/mm/yyy")
	SELECT @dataconvertida
	INSERT INTO Agenda
  (datahora, codtecnico, codcliente, observacoes)
  VALUES
  (@dataconvertida,@codtecnico,@codcliente,@observacoes)
END

Link para o comentário
Compartilhar em outros sites

  • 0

não funciona...

a atribuição na primeira linha (dd/mm/yyy) não funciona

Sei lá, tá dificil este caso, mas não impossivel....

Vamos ao conhecimentos de Hank McCoy, um dos Ex-Men, mais interessantes...

Se fosse inserir, informações na tabela que tenha uma campo data, seria desta forma:

INSERT INTO Tabela VALUES('01/01/1901 10:10:01','12/31/01 22:10:01')
Não tenho vergonha em dizer que não sei, e se estiver errado, me corrija, pois estou aprendendo com sua dúvida wink.gif No seu código, vamos experimentar mudar o seguinte:
IF @opcao = 'i'
	BEGIN
	DECLARE @dataconvertida AS DATETIME
	SELECT CONVERT(@dataconvertida, DATE(),101)
	INSERT INTO Agenda
  (datahora, codtecnico, codcliente, observacoes)
  VALUES
  (@dataconvertida,@codtecnico,@codcliente,@observacoes)
END 

Bolei este código no tapa, não tenho certeza absoluta se vai funcionar.... mas não custa tentar...

Boa Sorte !!! []s

Link para o comentário
Compartilhar em outros sites

  • 0
ele continua a trocar os meses pelos dias

Hum.... Esta foi 'A pergunta'!!

Como é programação dentro do banco de dados, não saberia ao certo lhe responder dry.gif , mas se fosse no Asp, você poderia trabalhar no formato Brasileiro as suas variaveis.

Session.LCID = 1046
aData = Now()
Response.Write(aData)
'output: 17/01/2004

Link para o comentário
Compartilhar em outros sites

  • 0

não necessito de fazer na Base de dados...a conversão poder ser feita em asp desde que funcione depois quando eu inserir na base de dados

Sendo assim:

 
Session.LCID = 1046
Variavel = FormatDateTime(Variavel, 2)
Onde variavel, vai ser o o valor emitido para a variavel de sua stored procedure. Vejo o exemplo que fiz para um membro:
<%
	Session.LCID = 1046
	sdata = Date()
	Response.Write(FormatDateTime(sData, 1) & "<br><br>")
	Response.Write(FormatDateTime(sData, 2) & "<br><br>")
	Response.Write(FormatDateTime(sData, 3) & "<br><br>")
	Response.Write(FormatDateTime(sData, 4) & "<br><br>")
%>

O Resultado pode ser visualizado em : http://www.desenvolvedor.retrieve.com.br/data_formatada.asp

Link para o comentário
Compartilhar em outros sites

  • 0

acontece a mesma coisa!!!

a conversao tem que ser feita na base de dados... senão...

a não ser que se inverta os meses e os dias antes e ele quando converter novamente já os vai colocar correctamente... complicado... eu explico...

17/01/2005 temos que colocar 01/17/2005

a base de dados vai colocar 17/01/2005

agora preciso da tua ajuda para colocar a data do tipo 01/17/2005 em asp

Link para o comentário
Compartilhar em outros sites

  • 0
isso aki serve???

<%
data=date()
response.write data & "<br><br>"
data2=month(data)&"/"&day(data)&"/"&year(data)
response.write data2
%>
Cyber!! Dá pra simplificar...
 Data = Date()

Se tudo estiver correto (acho que a data do servidor esta no formato americano) vai ocorrer tudo normalmente.

Link para o comentário
Compartilhar em outros sites

  • 0
as voltas que temos que dar para dar a volta ao sistema!!!!

está a funcionar... já agora se não for pedir muito podias terminar a variavel colocando também o formato da hora...

data2=month(data)&"/"&day(data)&"/"&year(data).............

Com a hora:

<%

data=date()

response.write data & "<br><br>"

data2=month(data)&"/"&day(data)&"/"&year(data)&" "&time()

response.write data2

%>

Link para o comentário
Compartilhar em outros sites

  • 0

pois... funciona se for a data actual... mas o que eu pretendo fazer é um campo receber dados de uma text com a data e hora

datas= Request.form("input4")
  
data2=month(datas)&"/"&day(datas)&"/"&year(datas)&" "&time(datas)
a parte &time(datas) não funciona: Assim funciona:
data2=month(datas)&"/"&day(datas)&"/"&year(datas)&" "&time()

mas vai buscar a hora do sistema

Link para o comentário
Compartilhar em outros sites

  • 0

resolvi o problema na Base de Dados...

da seguinte forma:

declarei uma variável

@datahora NVARCHAR(20)=''
depois
IF @opcao = 'i'
BEGIN	

	DECLARE @dataconvertida DATETIME

  SELECT @dataconvertida=CONVERT (datetime ,@datahora,105 )

	INSERT INTO
  agenda
  (datahora,codtecnico,codcliente,observacoes)
	VALUES
  (@dataconvertida,@codtecnico,@codcliente,@observacoes)
END

o segredo era declarar a variável do tipo nvarchar(20)

Obrigado por toda a atenção disponibilizada... Um abraço a todos e até breve...

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...