Autor Tópico: Campo do Tipo Date  (Lida 830 vezes)

julioalbuquerque

  • Intermediário
  • ***
  • Mensagens: 127
    • Email
Campo do Tipo Date
« Online: Maio 19, 2016, 11:44:35 am »
Uso o SC 8.1.040 com MSSQL Server.

Estou com problemas para usar campos do tipo DATE nas consultas.
Por exemplo, em uma tabela tenho o campo DTVENCIMENTO com o tipo DATE. A inclusão é feita normalmente.
Mas não consigo usar este campo nas consultas, ele é retornado como sendo tipo SQL = VARCHAR, não reconhece que é do tipo DATE.
Consequentemente não posso usar como filtro esse campo, pois é reconhecido como VARCHAR.
Mesmo que eu informe na configuração do campo na consulta como sendo do tipo Data, ao tentar executar a consulta, após informar o período de data recebo o seguinte erro:
Citar
Atenção
Erro ao acessar o banco de dados
Conversion failed when converting date and/or time from character string.
select count(*), sum(l.VLLANCAMENTO) as sum_l_vllancamento, sum(l.vlpago) as sum_l_vlpago, sum(l.vlsaldo) as sum_l_vlsaldo from frota_lancamento l inner join frota_centrofinanceiro cf on l.idcentrofinanceiro = cf.idcentrofinanceiro inner join frota_conta c on l.idconta = c.idconta inner join frota_empresa e on l.idempresa = e.idempresa inner join frota_centrocusto cc on l.idcentrocusto = cc.idcentrocusto left outer join frota_fornecedor f on l.idfornecedor = f.idfornecedor left outer join frota_funcionario ff on l.idfuncionario = ff.idfuncionario where l.TPLANCAMENTO='0' and l.VLSALDO > 0 and ( l.DTVENCIMENTO between 'aaaa-01-01' and 'aaaa-12-31' )

Notem que a data fica "mal formada", o ano não é reconhecido.
Alguém já passou por isso? Existe alguma solução?
Para campos do tipo Data e Hora isso não acontece.
« Última modificação: Março 06, 2017, 03:15:50 pm por Ronyan Alves »

Yuri Esteves

  • Administrator
  • Expert
  • *****
  • Mensagens: 948
    • Email
Re:Campo do Tipo Date
« Responder #1 Online: Maio 19, 2016, 01:19:46 pm »
Qual o modelo do SGBD usado nas conexões? Ex: Native SRV,Native PDO, ODBC ou Mssql Server?

julioalbuquerque

  • Intermediário
  • ***
  • Mensagens: 127
    • Email
Re:Campo do Tipo Date
« Responder #2 Online: Maio 19, 2016, 01:41:19 pm »
Mssql Server

Jailton

  • Expert
  • *****
  • Mensagens: 2588
Re:Campo do Tipo Date
« Responder #3 Online: Maio 19, 2016, 01:49:11 pm »
Só por curiosidade...

Configura ele pra acessar PDO e cria uma consulta nova e veja se o campo DATE, se puxou como DATE no tipo de campo.
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

julioalbuquerque

  • Intermediário
  • ***
  • Mensagens: 127
    • Email
Re:Campo do Tipo Date
« Responder #4 Online: Maio 19, 2016, 02:05:54 pm »
Jailton,
criei uma nova conexão utilizando PDO e fiz o teste, funcionou!
Valeu!
Isso estava me dando uma enorme dor de cabeça!
Pena que vários campos eu já mudei para DATETIME devido a isso.

Vou estudar qual a diferença entre esses tipos de conexões (PDO,SQL SERVER,etc).

Jailton

  • Expert
  • *****
  • Mensagens: 2588
Re:Campo do Tipo Date
« Responder #5 Online: Maio 19, 2016, 02:32:48 pm »
Jailton,
criei uma nova conexão utilizando PDO e fiz o teste, funcionou!
Valeu!
Isso estava me dando uma enorme dor de cabeça!
Pena que vários campos eu já mudei para DATETIME devido a isso.

Vou estudar qual a diferença entre esses tipos de conexões (PDO,SQL SERVER,etc).

Por isso que eu sempre recomendo o PDO, eu uso para vários bancos 'diferentes MySQL/MariaDB/SQlite/Firebird/Access' e sempre dá certo, porque a vantagem do PDO
é que ele 'padroniza' os campos SQL.
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

julioalbuquerque

  • Intermediário
  • ***
  • Mensagens: 127
    • Email
Re:Campo do Tipo Date
« Responder #6 Online: Maio 19, 2016, 02:34:46 pm »
Obrigado pela informação.

elciolima

  • Novato
  • *
  • Mensagens: 7
    • Email
Re:Campo do Tipo Date
« Responder #7 Online: Fevereiro 28, 2017, 06:38:40 pm »
Só por curiosidade...

Configura ele pra acessar PDO e cria uma consulta nova e veja se o campo DATE, se puxou como DATE no tipo de campo.

Estou tentando essa mesma solução, porém recebo o seguinte erro:
Citar
Connection Error

Connection attempt failed: SQLSTATE[IMSSP]: This extension requires the Microsoft ODBC Driver 11 for SQL Server to communicate with SQL Server. Access the following URL to download the ODBC Driver 11 for SQL Server for x86: http://go.microsoft.com/fwlink/?LinkId=163712

Já instalei o drive sugerido e não da certo.
Atenciosamente

Elcio Lima

Moacir de Oliveira

  • Intermediário
  • ***
  • Mensagens: 154
    • Email
Re:Campo do Tipo Date
« Responder #8 Online: Fevereiro 28, 2017, 07:53:27 pm »
Ola

Acho que tem que habilitar no php.ini a extensao.
Atenciosamente

Moacir de Oliveira
São Paulo - SP

elciolima

  • Novato
  • *
  • Mensagens: 7
    • Email
Re:Campo do Tipo Date
« Responder #9 Online: Março 04, 2017, 03:28:54 pm »
Ola Moacir!

Muito Obrigado, deu certo.

Liberei as seguintes extensões:
- php_pdo_sqlsrv_56_nts.dll -> Sem comunicação segura
- php_pdo_sqlsrv_56_ts.dll -> Com comunicação segura

Mas só isso não resolver, também tive que instalar o Microsoft® ODBC Driver 11 para SQL Server® - Windows.

Funcionou bonitinho.
Atenciosamente

Elcio Lima