none
comand sql RRS feed

  • Pergunta

  • Tenho o seguinte select

    "select * from ATENDIMENTO WHERE STATUS_ATENDIMENTO ='" + cbopcao.Text + "' and  CAST(FLOOR(CAST(DATA_ATENDIMENTO AS float)) AS datetime) >= '" + mini.Text + "' AND CAST(FLOOR(CAST(DATA_ATENDIMENTO AS float)) AS datetime) <='" + mfim.Text + "'", connection);

    Assim ele me retorna a data no seguinte formato

    12/02/2014 10:40:00 ( mes/dia/ano)

    quero que ele retorne assim (dia/mes/ano)


    Atenciosamente,
    José Henrique Sabino

    terça-feira, 2 de dezembro de 2014 14:02

Respostas

  • José,

    Analisando o seu código, você esta utilizando uma Query Dinâmica no Delphi, é isso mesmo?

    Se for, como os valores de data estão sendo passadas para o seu query?

    Nos seus componentes do tipo TextBox, qual é a formatação que esta aplicada.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    quarta-feira, 3 de dezembro de 2014 14:21
  • Deleted
    terça-feira, 2 de dezembro de 2014 15:39
  • José,

    Dependendo da sua versão do SQL Server, você poderá utilizar a função FORMAT ou CONVERT.

    Segue dois exemplos para você adaptar à sua necessidade:

    SELECT FORMAT(GETDATE(), 'dd/MM/yyyy');
    GO
    
    SELECT CONVERT(VARCHAR(10), GETDATE(), 103);
    GO

    No caso de sua consulta, o ideal é você declarar todas as suas colunas (em substituição ao "*"), mas como alternativa você poderá criar um ALIAS para a tabela e definir a formatação da sua coluna data à parte. Segue outro exemplo:

    SELECT ATD.*, CONVERT(VARCHAR(10),ATD.DATA_ATENDIMENTO, 103) AS DATA_FORMATADA
    FROM ATENDIMENTO AS ATD;
    GO
    

    Se ajudou na sua solução, não esqueça de marcar como resposta !


    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    terça-feira, 2 de dezembro de 2014 15:42
    Moderador

Todas as Respostas

  • José,

    Experimenta fazer dessa forma:

    select convert(varchar(10),DATA_ATENDIMENTO,103) as DATA_ATENDIMENTO from ATENDIMENTO WHERE STATUS_ATENDIMENTO ='" + cbopcao.Text + "' and   convert(varchar(10),DATA_ATENDIMENTO,103)  Between '" + mini.Text + "' and '" + mfim.Text + "'", connection);



    Diego Almeida Barreto
    System Analyst / Software Developer



    terça-feira, 2 de dezembro de 2014 14:09
  • Deleted
    terça-feira, 2 de dezembro de 2014 15:39
  • José,

    Dependendo da sua versão do SQL Server, você poderá utilizar a função FORMAT ou CONVERT.

    Segue dois exemplos para você adaptar à sua necessidade:

    SELECT FORMAT(GETDATE(), 'dd/MM/yyyy');
    GO
    
    SELECT CONVERT(VARCHAR(10), GETDATE(), 103);
    GO

    No caso de sua consulta, o ideal é você declarar todas as suas colunas (em substituição ao "*"), mas como alternativa você poderá criar um ALIAS para a tabela e definir a formatação da sua coluna data à parte. Segue outro exemplo:

    SELECT ATD.*, CONVERT(VARCHAR(10),ATD.DATA_ATENDIMENTO, 103) AS DATA_FORMATADA
    FROM ATENDIMENTO AS ATD;
    GO
    

    Se ajudou na sua solução, não esqueça de marcar como resposta !


    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    terça-feira, 2 de dezembro de 2014 15:42
    Moderador
  • Diego coloquei do mesmo jeito que você informou mais ele esta buscando errado, pois

    exemplo se eu buscar do dia 01/09/2014 até 30/09/2014, ele busca somente s datas entre 02/09 a 29/09 que não seria o certo, o certo seria ele pegar o dia 01 e o dia 30 também, o que posso alterar no comando para que isso aconteça .


    Atenciosamente,
    José Henrique Sabino

    terça-feira, 2 de dezembro de 2014 16:45
  • José,

    Analisando o seu código, você esta utilizando uma Query Dinâmica no Delphi, é isso mesmo?

    Se for, como os valores de data estão sendo passadas para o seu query?

    Nos seus componentes do tipo TextBox, qual é a formatação que esta aplicada.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    quarta-feira, 3 de dezembro de 2014 14:21