ERRO NO FOMATO DA DATA SQL

RPRATES 21/07/2005 14:48:17
#95385
estou tentando gravar um registro numa base SQL SERVER com o comando baixa, só que a data que fica sempre 01/01/1990

INSERT IN BDADOS (DATA, NOME) VALUES (21/07/2005,'RICARDO')

OU

INSERT IN BDADOS (DATA, NOME) VALUES (07/21/2005,'RICARDO')
USUARIO.EXCLUIDOS 21/07/2005 15:00:31
#95389
bom, só uso access, e pelo menos nele tem que ter cerquila # e tem que estar no formato mm/dd/yyyy

INSERT IN BDADOS (DATA, NOME) VALUES (#07/21/2005#,'RICARDO')


não sei se o mesmo se aplica ao sql server.
LEANDRO.LUIZ 21/07/2005 15:34:21
#95397
Eu uso o Firebird, pelo menos nele coloco a data entre apostrofos, e no formato mm/dd/yyyy, tente assim, quem sabe é igual no sqlserver
INSERT IN BDADOS (DATA, NOME) VALUES ('07/21/2005','RICARDO')
TRUHILLO 21/07/2005 16:17:01
#95404
Eu também uso Firebird e para datas, uso hífens como separadores e aspas simpes:

INSERT INTO BDDADOS VALUES ('07-21-2005', 'PAULO')

Pelo jeito, valores DATA são mesmo os mais chatos de se trabalhar em SQL.
USUARIO.EXCLUIDOS 21/07/2005 16:55:31
#95416
Vamos lá..
pro sql server data é sempre yyyy/mm/dd
se vc estiver usando o insert pelo VB, ou seja..não em estored procedure..
vc pode fazer de duas maneiras..tanto passando a data como yyy/mm/dd e colocando as aspas simples entre elas ..tipo '2005-01-01' ou dar um set dateformat dmy antes do insert e passar a data com dd/mm/yyy
sql = "set dateformat dmy insert into tabela(data) values ('" & format(data,"dd/mmyyyy") & "'"

se vc estiver usando em stored procedure, ou seja, recebendo um campo como datetime smalldatetime nela, obrigatoriamente a data tem que ser passada como yyy/mm/dd..
todas tem que ser passadas com as aspas simples

quando vc for fazer um select entre datas, sempre coloque como yyyy/mm/dd e de preferencia a hora...ex...select * from tabela where data between '2005-01-01 00:00' and '2005-01-01 23:59'

Tópico encerrado , respostas não são mais permitidas