Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Aibo

ignorar data '01/01/1900' sql server 200

Recommended Posts

BOM DIA,ESTOU COM UMA DUVIDA.........EU TENHO UM BD SQL 2000 SERVER E NA MINHA TABELA TENHO VARIAS COLUNAS DE DATA NA MESMA LINHA DA TABELA , EXEMPLO :DATA1DATA2DATA3DATA4DATA5OK, EU CONSIGO FAZER O INSERT NORMALMENTE DO MODO QUE EU QUERO, SÓ QUE SE EU INCLUIR PELO ASP VALORES EM DATA1 E DATA2 E DEIXAR O RESTANTE DOS CAMPOS EM BRANCO O SQL SERVER INSERE AUTMÁTICO POR DEFAULT '01/01/1900' ISSO EU SEI, SÓ QUE QUANDO VOU REALIZAR UM SELECT PELO ASP, ME APARECE AS DUAS DATAS QUE EU INCLUIR E AS DEMAIS TAMBÉM.EXEMPLO...SELECT * FROM FROTADATADATA1 = 29/10/1980 DATA2 = 10/12/2006DATA3 = 01/01/1900DATA4 = 01/01/1900DATA5 = 01/01/1900GOSTARIA DE SABER SE EXISTE COMO OS CAMPOS QUE FORAM DEIXADOS EM BRANCO NO FORM E INCLIDOS COMO DEFAULT NO SQL COMO '01/01/19000' SEREM IGNORADOS OU SEJA QUE SÓ ME RESPONDA OS CAMPOS DATA1 E DATA2 QUE TEM DATAS INSERIDAS REALMENTE E O QUE TEM '01/01/1900' SEJA IGNORADO...?TIPO ASSIM...RESULTADODATA1 = 29/10/1980 DATA2 = 10/12/2006DATA3 = DATA4 = DATA5 = VALEU

Compartilhar este post


Link para o post
Compartilhar em outros sites

como assim, você quer fazer uma consulta no sqlserver ou exibir os dados na pagina???Você poderia fazer um If para cada um dos campos DATA1 ,DATA2 ,DATA3 ,DATA4 ,DATA5 ou então um eof verificando se algum deles tem o '01/01/19000' ou então colocar o campo data como varchar!é mais ou menos isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

BOM DIA,ESTOU COM UMA DUVIDA.........EU TENHO UM BD SQL 2000 SERVER E NA MINHA TABELA TENHO VARIAS COLUNAS DE DATA NA MESMA LINHA DA TABELA , EXEMPLO :DATA1DATA2DATA3DATA4DATA5OK, EU CONSIGO FAZER O INSERT NORMALMENTE DO MODO QUE EU QUERO, SÓ QUE SE EU INCLUIR PELO ASP VALORES EM DATA1 E DATA2 E DEIXAR O RESTANTE DOS CAMPOS EM BRANCO O SQL SERVER INSERE AUTMÁTICO POR DEFAULT '01/01/1900' ISSO EU SEI, SÓ QUE QUANDO VOU REALIZAR UM SELECT PELO ASP, ME APARECE AS DUAS DATAS QUE EU INCLUIR E AS DEMAIS TAMBÉM.EXEMPLO...SELECT * FROM FROTADATADATA1 = 29/10/1980 DATA2 = 10/12/2006DATA3 = 01/01/1900DATA4 = 01/01/1900DATA5 = 01/01/1900GOSTARIA DE SABER SE EXISTE COMO OS CAMPOS QUE FORAM DEIXADOS EM BRANCO NO FORM E INCLIDOS COMO DEFAULT NO SQL COMO '01/01/19000' SEREM IGNORADOS OU SEJA QUE SÓ ME RESPONDA OS CAMPOS DATA1 E DATA2 QUE TEM DATAS INSERIDAS REALMENTE E O QUE TEM '01/01/1900' SEJA IGNORADO...?TIPO ASSIM...RESULTADODATA1 = 29/10/1980 DATA2 = 10/12/2006DATA3 = DATA4 = DATA5 = VALEU

A data default do sql server é "01/01/1900", e se você tentar incluir uma data vazia (string vazia "") ele irá entender como data default.Para que o campo da tabela fique como null ao invés dessa data default, você tem duas opções.Ao invés de passar vazio (""), passe null, ou não especifique o campo que vai ficar em branco no INSERT.Por exemplo, você vai incluir duas datas.. a primeira nula e a segunda não.você poderia fazer:
insert into tabela (campoData1, campoData2) values(null, "20061026")ouinsert into tabela (campoData2) values("20061026")
Abraços,Cassiano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não dá pra fazer um IF aee?if data5 <>"01/01/1900" then response.write(data5)+- isso !

como farei esse if ??esse é um pedaço do código que requisita os dados da coluna data2 no DB, como faço para colocar esse if aqui ......set lista_equipamentos = conn.execute("select * from frotadados where") <td width="66" bgcolor="#E5E5E5" align="center" height="14"> <% = lista_equipamentos("data2")%></td>

como assim, você quer fazer uma consulta no sqlserver ou exibir os dados na pagina???Você poderia fazer um If para cada um dos campos DATA1 ,DATA2 ,DATA3 ,DATA4 ,DATA5 ou então um eof verificando se algum deles tem o '01/01/19000' ou então colocar o campo data como varchar!é mais ou menos isso?

como farei esse if ??esse é um pedaço do código que requisita os dados da coluna data2 no DB, como faço para colocar esse if aqui ......set lista_equipamentos = conn.execute("select * from frotadados where")<td width="66" bgcolor="#E5E5E5" align="center" height="14"><% = lista_equipamentos("data2")%></td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

como farei esse if ??esse é um pedaço do código que requisita os dados da coluna data2 no DB, como faço para colocar esse if aqui ......set lista_equipamentos = conn.execute("select * from frotadados where") <td width="66" bgcolor="#E5E5E5" align="center" height="14"> <% = lista_equipamentos("data2")%></td>

<td width="66" bgcolor="#E5E5E5" align="center" height="14"><% if lista_equipamentos("data2")<>"01/01/1900" then response.write(lista_equipamentos("data2"))%></td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

BOM DIA,ESTOU COM UMA DUVIDA.........EU TENHO UM BD SQL 2000 SERVER E NA MINHA TABELA TENHO VARIAS COLUNAS DE DATA NA MESMA LINHA DA TABELA , EXEMPLO :DATA1DATA2DATA3DATA4DATA5OK, EU CONSIGO FAZER O INSERT NORMALMENTE DO MODO QUE EU QUERO, SÓ QUE SE EU INCLUIR PELO ASP VALORES EM DATA1 E DATA2 E DEIXAR O RESTANTE DOS CAMPOS EM BRANCO O SQL SERVER INSERE AUTMÁTICO POR DEFAULT '01/01/1900' ISSO EU SEI, SÓ QUE QUANDO VOU REALIZAR UM SELECT PELO ASP, ME APARECE AS DUAS DATAS QUE EU INCLUIR E AS DEMAIS TAMBÉM.EXEMPLO...SELECT * FROM FROTADATADATA1 = 29/10/1980 DATA2 = 10/12/2006DATA3 = 01/01/1900DATA4 = 01/01/1900DATA5 = 01/01/1900GOSTARIA DE SABER SE EXISTE COMO OS CAMPOS QUE FORAM DEIXADOS EM BRANCO NO FORM E INCLIDOS COMO DEFAULT NO SQL COMO '01/01/19000' SEREM IGNORADOS OU SEJA QUE SÓ ME RESPONDA OS CAMPOS DATA1 E DATA2 QUE TEM DATAS INSERIDAS REALMENTE E O QUE TEM '01/01/1900' SEJA IGNORADO...?TIPO ASSIM...RESULTADODATA1 = 29/10/1980 DATA2 = 10/12/2006DATA3 = DATA4 = DATA5 = VALEU

A data default do sql server é "01/01/1900", e se você tentar incluir uma data vazia (string vazia "") ele irá entender como data default.Para que o campo da tabela fique como null ao invés dessa data default, você tem duas opções.Ao invés de passar vazio (""), passe null, ou não especifique o campo que vai ficar em branco no INSERT.Por exemplo, você vai incluir duas datas.. a primeira nula e a segunda não.você poderia fazer:
insert into tabela (campoData1, campoData2) values(null, "20061026")ouinsert into tabela (campoData2) values("20061026")
Abraços,Cassiano.
mais Cassiano, tem hora que o valor vai ser nulo porque o usuário não preencheu e tem que hora que vai existir valor porque o usuário preencheu ,,,,,entendeu /

Compartilhar este post


Link para o post
Compartilhar em outros sites

BOM DIA,ESTOU COM UMA DUVIDA.........EU TENHO UM BD SQL 2000 SERVER E NA MINHA TABELA TENHO VARIAS COLUNAS DE DATA NA MESMA LINHA DA TABELA , EXEMPLO :DATA1DATA2DATA3DATA4DATA5OK, EU CONSIGO FAZER O INSERT NORMALMENTE DO MODO QUE EU QUERO, SÓ QUE SE EU INCLUIR PELO ASP VALORES EM DATA1 E DATA2 E DEIXAR O RESTANTE DOS CAMPOS EM BRANCO O SQL SERVER INSERE AUTMÁTICO POR DEFAULT '01/01/1900' ISSO EU SEI, SÓ QUE QUANDO VOU REALIZAR UM SELECT PELO ASP, ME APARECE AS DUAS DATAS QUE EU INCLUIR E AS DEMAIS TAMBÉM.EXEMPLO...SELECT * FROM FROTADATADATA1 = 29/10/1980 DATA2 = 10/12/2006DATA3 = 01/01/1900DATA4 = 01/01/1900DATA5 = 01/01/1900GOSTARIA DE SABER SE EXISTE COMO OS CAMPOS QUE FORAM DEIXADOS EM BRANCO NO FORM E INCLIDOS COMO DEFAULT NO SQL COMO '01/01/19000' SEREM IGNORADOS OU SEJA QUE SÓ ME RESPONDA OS CAMPOS DATA1 E DATA2 QUE TEM DATAS INSERIDAS REALMENTE E O QUE TEM '01/01/1900' SEJA IGNORADO...?TIPO ASSIM...RESULTADODATA1 = 29/10/1980 DATA2 = 10/12/2006DATA3 = DATA4 = DATA5 = VALEU

A data default do sql server é "01/01/1900", e se você tentar incluir uma data vazia (string vazia "") ele irá entender como data default.Para que o campo da tabela fique como null ao invés dessa data default, você tem duas opções.Ao invés de passar vazio (""), passe null, ou não especifique o campo que vai ficar em branco no INSERT.Por exemplo, você vai incluir duas datas.. a primeira nula e a segunda não.você poderia fazer:
insert into tabela (campoData1, campoData2) values(null, "20061026")ouinsert into tabela (campoData2) values("20061026")
Abraços,Cassiano.
mais Cassiano, tem hora que o valor vai ser nulo porque o usuário não preencheu e tem que hora que vai existir valor porque o usuário preencheu ,,,,,entendeu /
Então... eu entendi a situação.. só que na minha opinião você tem que tratar o dado na hora que ele vai ser gravado no banco, e não na hora de exibir, que seria a outra opção que te sugeriram.E pra dar certo, basta na hora de inserir, ao invés de colocar vazio, coloque null.Assim, quando o usuário não preencher a data 1 por exemplo:Ao invés de:insert into tabela (campoData1, campoData2) values('', "20061026")Faça:insert into tabela (campoData1, campoData2) values(null, "20061026")Assim a sua tabela não vai ter o valor "01/01/1900" quando o campo estiver vazio, e sim, estará nulo, como deve ser.AbraçosCassiano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim a sua tabela não vai ter o valor "01/01/1900" quando o campo estiver vazio, e sim, estará nulo, como deve ser.AbraçosCassiano.

Cassiano, estamos aqui para aprender, e me surgiu uma dúvida mas não tenho como testar nada agora e vou perguntar aqui: Se o campo estiver vazio e eu mandar um =rsTabela("campo") ele não vai dar erro ? http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim a sua tabela não vai ter o valor "01/01/1900" quando o campo estiver vazio, e sim, estará nulo, como deve ser.AbraçosCassiano.

Cassiano, estamos aqui para aprender, e me surgiu uma dúvida mas não tenho como testar nada agora e vou perguntar aqui: Se o campo estiver vazio e eu mandar um =rsTabela("campo") ele não vai dar erro ? http://forum.imasters.com.br/public/style_emoticons/default/blush.gif
Claro.. estamos aqui pra aprender juntos e ajudar é bom que a gente aprende mais!Quando você tem um campo nulo, não importa o tipo (string, integer, datetime, etc) se você tentar mostrar o valor desse campo em algum lugar da página, ele será mostrado como vazio.Por exemplo.. você tem na sua tabela um campo de nome "campo" do tipo data. Se o usuário preencher a data, você insere a data normalmente. Senão, você insere um valor nulo, ou simplesmente omite do insert aquele campo. Assim o banco de dados não vai jogar nada nessa coluna.Quando você joga um valor vazio (não nulo), por exemplo uma string vazia, tipo '' o banco não entende isso como uma data válida, e coloca aquela data padrão, "01/01/1900".Dessa forma, inserindo uma string vazia, quando você recuperar a data para exibir, fazendo o rsTabela("campo"), vai mostrar o valor "01/01/1900."Agora, se o campo estiver nulo, ou seja, se você fizer da forma que citei antes, omitindo do insert as colunas que sejam vazias, ou jogando null para elas, ao recuperar a data pra exibição, com o rsTabela("campo"), o conteúdo vai estar vazio.É só você testar o preenchimento de cada variável antes do insert, e caso seja vazio, fazer inserir null.Espero ter ajudado, mas qualquer coisa é só falar..AbraçoCassiano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

BOM DIA,ESTOU COM UMA DUVIDA.........EU TENHO UM BD SQL 2000 SERVER E NA MINHA TABELA TENHO VARIAS COLUNAS DE DATA NA MESMA LINHA DA TABELA , EXEMPLO :DATA1DATA2DATA3DATA4DATA5OK, EU CONSIGO FAZER O INSERT NORMALMENTE DO MODO QUE EU QUERO, SÓ QUE SE EU INCLUIR PELO ASP VALORES EM DATA1 E DATA2 E DEIXAR O RESTANTE DOS CAMPOS EM BRANCO O SQL SERVER INSERE AUTMÁTICO POR DEFAULT '01/01/1900' ISSO EU SEI, SÓ QUE QUANDO VOU REALIZAR UM SELECT PELO ASP, ME APARECE AS DUAS DATAS QUE EU INCLUIR E AS DEMAIS TAMBÉM.EXEMPLO...SELECT * FROM FROTADATADATA1 = 29/10/1980 DATA2 = 10/12/2006DATA3 = 01/01/1900DATA4 = 01/01/1900DATA5 = 01/01/1900GOSTARIA DE SABER SE EXISTE COMO OS CAMPOS QUE FORAM DEIXADOS EM BRANCO NO FORM E INCLIDOS COMO DEFAULT NO SQL COMO '01/01/19000' SEREM IGNORADOS OU SEJA QUE SÓ ME RESPONDA OS CAMPOS DATA1 E DATA2 QUE TEM DATAS INSERIDAS REALMENTE E O QUE TEM '01/01/1900' SEJA IGNORADO...?TIPO ASSIM...RESULTADODATA1 = 29/10/1980 DATA2 = 10/12/2006DATA3 = DATA4 = DATA5 = VALEU

A data default do sql server é "01/01/1900", e se você tentar incluir uma data vazia (string vazia "") ele irá entender como data default.Para que o campo da tabela fique como null ao invés dessa data default, você tem duas opções.Ao invés de passar vazio (""), passe null, ou não especifique o campo que vai ficar em branco no INSERT.Por exemplo, você vai incluir duas datas.. a primeira nula e a segunda não.você poderia fazer:
insert into tabela (campoData1, campoData2) values(null, "20061026")ouinsert into tabela (campoData2) values("20061026")
Abraços,Cassiano.
mais Cassiano, tem hora que o valor vai ser nulo porque o usuário não preencheu e tem que hora que vai existir valor porque o usuário preencheu ,,,,,entendeu /
Então... eu entendi a situação.. só que na minha opinião você tem que tratar o dado na hora que ele vai ser gravado no banco, e não na hora de exibir, que seria a outra opção que te sugeriram.E pra dar certo, basta na hora de inserir, ao invés de colocar vazio, coloque null.Assim, quando o usuário não preencher a data 1 por exemplo:Ao invés de:insert into tabela (campoData1, campoData2) values('', "20061026")Faça:insert into tabela (campoData1, campoData2) values(null, "20061026")Assim a sua tabela não vai ter o valor "01/01/1900" quando o campo estiver vazio, e sim, estará nulo, como deve ser.AbraçosCassiano.
ENTÃO CAMARADAS, ESTOU TENTANDO FAZER ASSIM NO ASPDIM DATA1DATA1 = DATA1SQL = " INSERT INTO FROTADADS (DATA1) VALUES (IF data1 = "" THEN SQL = SQL & '"&null&"' else SQL = SQL & convert(smalldatetime,'"&data1&"',103) END IF)"CONN.EXECUTE(SQL)SÓ QUE DÁ ERROMicrosoft OLE DB Provider for SQL Server erro '80040e14' Incorrect syntax near the keyword 'IF'. NEM SEI SE ESTOU FAZENDO ESSE IF CERTO,,,,,,DÁ UMA OLHADA E VÊ SE VCS PODEM ME AJUDARESTOU USANDO ASP COM SQL SERVER 2000A COLUNA DATA1 ESTÁ DEFINIDA COMO SMALLDATETIMEVALER CARAS..

Compartilhar este post


Link para o post
Compartilhar em outros sites

BOM DIA,ESTOU COM UMA DUVIDA.........EU TENHO UM BD SQL 2000 SERVER E NA MINHA TABELA TENHO VARIAS COLUNAS DE DATA NA MESMA LINHA DA TABELA , EXEMPLO :DATA1DATA2DATA3DATA4DATA5OK, EU CONSIGO FAZER O INSERT NORMALMENTE DO MODO QUE EU QUERO, SÓ QUE SE EU INCLUIR PELO ASP VALORES EM DATA1 E DATA2 E DEIXAR O RESTANTE DOS CAMPOS EM BRANCO O SQL SERVER INSERE AUTMÁTICO POR DEFAULT '01/01/1900' ISSO EU SEI, SÓ QUE QUANDO VOU REALIZAR UM SELECT PELO ASP, ME APARECE AS DUAS DATAS QUE EU INCLUIR E AS DEMAIS TAMBÉM.EXEMPLO...SELECT * FROM FROTADATADATA1 = 29/10/1980 DATA2 = 10/12/2006DATA3 = 01/01/1900DATA4 = 01/01/1900DATA5 = 01/01/1900GOSTARIA DE SABER SE EXISTE COMO OS CAMPOS QUE FORAM DEIXADOS EM BRANCO NO FORM E INCLIDOS COMO DEFAULT NO SQL COMO '01/01/19000' SEREM IGNORADOS OU SEJA QUE SÓ ME RESPONDA OS CAMPOS DATA1 E DATA2 QUE TEM DATAS INSERIDAS REALMENTE E O QUE TEM '01/01/1900' SEJA IGNORADO...?TIPO ASSIM...RESULTADODATA1 = 29/10/1980 DATA2 = 10/12/2006DATA3 = DATA4 = DATA5 = VALEU

A data default do sql server é "01/01/1900", e se você tentar incluir uma data vazia (string vazia "") ele irá entender como data default.Para que o campo da tabela fique como null ao invés dessa data default, você tem duas opções.Ao invés de passar vazio (""), passe null, ou não especifique o campo que vai ficar em branco no INSERT.Por exemplo, você vai incluir duas datas.. a primeira nula e a segunda não.você poderia fazer:
insert into tabela (campoData1, campoData2) values(null, "20061026")ouinsert into tabela (campoData2) values("20061026")
Abraços,Cassiano.
mais Cassiano, tem hora que o valor vai ser nulo porque o usuário não preencheu e tem que hora que vai existir valor porque o usuário preencheu ,,,,,entendeu /
Então... eu entendi a situação.. só que na minha opinião você tem que tratar o dado na hora que ele vai ser gravado no banco, e não na hora de exibir, que seria a outra opção que te sugeriram.E pra dar certo, basta na hora de inserir, ao invés de colocar vazio, coloque null.Assim, quando o usuário não preencher a data 1 por exemplo:Ao invés de:insert into tabela (campoData1, campoData2) values('', "20061026")Faça:insert into tabela (campoData1, campoData2) values(null, "20061026")Assim a sua tabela não vai ter o valor "01/01/1900" quando o campo estiver vazio, e sim, estará nulo, como deve ser.AbraçosCassiano.
ENTÃO CAMARADAS, ESTOU TENTANDO FAZER ASSIM NO ASPDIM DATA1DATA1 = REQUEST.FORM ("DATA1")SQL = " INSERT INTO FROTADADS (DATA1) VALUES (IF data1 = "" THEN SQL = SQL & '"&null&"' else SQL = SQL & convert(smalldatetime,'"&data1&"',103) END IF)"CONN.EXECUTE(SQL)SÓ QUE DÁ ERROMicrosoft OLE DB Provider for SQL Server erro '80040e14' Incorrect syntax near the keyword 'IF'. NEM SEI SE ESTOU FAZENDO ESSE IF CERTO,,,,,,DÁ UMA OLHADA E VÊ SE VCS PODEM ME AJUDARESTOU USANDO ASP COM SQL SERVER 2000A COLUNA DATA1 ESTÁ DEFINIDA COMO SMALLDATETIMEVALER CARAS..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara..

 

Faz o seguinte, na inclusão do registro no banco de dados:

 

'Recebendo do FormuláriocampoData1 = Request.Form("campoData1")campoData2 = Request.Form("campoData2")campoData3 = Request.Form("campoData3")campoData4 = Request.Form("campoData4")campoData5 = Request.Form("campoData5")If campoData1 = "" Then strCampoData1 = "null" Else strCampoData1 = "'"& campoData1 &"'"If campoData2 = "" Then strCampoData2 = "null" Else strCampoData2 = "'"& campoData2 &"'"If campoData3 = "" Then strCampoData3 = "null" Else strCampoData3 = "'"& campoData3 &"'"If campoData4 = "" Then strCampoData4 = "null" Else strCampoData4 = "'"& campoData4 &"'"If campoData5 = "" Then strCampoData5 = "null" Else strCampoData5 = "'"& campoData5 &"'"sql = "INSERT INTO Tabela (campoData1, campoData2, campoData3, campoData4, campoData5)" &_	 " VALUES ("& strCampoData1 &", "& strCampoData2 &", "& strCampoData3 &", "& strCampoData4 &", "& strCampoData5 &")"

Abraço

Cassiano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.