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

(Resolvido) insert no campo data


marvi

Pergunta

Olá pessoal,

Estou fazendo um insert no campo datatime do SQL server 2000, mas na tabela só exibe 1/1/1900

Se digito 01/03/2010 lá no banco fica 1/1/1900

Meu SQL:

insert into noticias (conteudo, fonte, titulo, datar) values ('"& VarDesc &"','"& vfonte &"','"& vtitulo &"',"& vdata &")

E a variavel manda o valor normal, pois vi no response.write, mas no banco fica sempre essa data padrão 1/1/1900

Como resolvo isso e faça com que entre no campo datatime o que foi digitado? Se digito 01/03/2010 direto na tabela ele fica 01/3/2010, mas se uso o insert ele fica 1/1/1900, como resolver? Há um tratamento antes de inserir no banco?

Grato

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

como gravar no formato YYYY-MM-DD?

Eu fiz

insert into noticias (conteudo, fonte, titulo, datar) values ('"& VarDesc &"','"& vfonte &"','"& vtitulo &"','& vdata &') e deu esse erro:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC SQL Server Driver][sql Server]Syntax error converting datetime from character string.

/painel/inserirnoticiasnovas.asp, line 32

Está simples agora, antes era dupla

Editado por marvi
Link para o comentário
Compartilhar em outros sites

  • 0

não, é como você tava fazendo com as strings:

"insert into noticias (conteudo, fonte, titulo, datar) values ('"& VarDesc &"','"& vfonte &"','"& vtitulo &"','"& vdata &"')"

pra gravar no formato YYYY-MM-DD, você teria q dividir a data com as funcoes Year(), Month() e Day().

Link para o comentário
Compartilhar em outros sites

  • 0

Certo, eu coloquei as strings, parou o erro, mas a data fica no banco 1/1/1900

Para resolver isso preciso fazer uma função para a variável '"& vdata &"', isso?

Poderia me dar um exemplo como uso as funções funcoes Year(), Month() e Day() na minha variável para colocar no banco sem que fique com a data 1/1/1900?

Link para o comentário
Compartilhar em outros sites

  • 0
dia  = day(data)
mes = month(data)
ano = year(data)

data_sql = ano & "-" & mes & "-" & dia

Mas onde fica me variavel vdata aí? Essa vdata é uma variavel que pega os dados digitado do formulário. A pessoa digita a data, faço um vdata = request.form("campodata") e insiro no banco

Link para o comentário
Compartilhar em outros sites

  • 0

Agora o problema está no DESC, pois no campo há

3/1/2010

28/2/2010

E quando faço o SQL fazendo decrescente

SELECT * FROM noticias order by datar desc, codigo desc

A tabela fica assim:

28/2/2010

3/1/2010

Mas o certo é o 28/2/2010 ficar por último, pois é data mais antiga, como resolver?

Pois ao digitar no campo foi 01/03/2010 e la no banco fica 3/1/2010 e sendo assim o SQL não coloca na ordem decrescente

Pode deixar, eu mudei a ordem

data_sql = dia & "-" & mes & "-" & ano

E o DESC entendeu e ficou como eu queria!

Obrigado!

Editado por marvi
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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...