none
Convert Data RRS feed

  • Pergunta

  • Prezados bom dia,estou com uma duvida que parece facil porem nao estou conseguindo resolver, na SQL abaixo


    SELECT DATACOLETA   FROM OFHISTINDICADOR  WHERE IDOBJOF = 'cb-05'

    me retorna a Data nesse formato

    2011-07-15 08:00:00.000
    2011-07-20 08:00:00.000
    2011-07-22 08:00:00.000

     

    eu preciso colocar na condição where, por exemplo para digitar dessa forma 15/07/2011 somente sem a Hora.

    o resultado no select eu consegui usando o convert(varchar, DATACOLETA, 103), porem quanto eu coloco na condição Where ele nao traz nada.

    agradeço a ajuda de todos

     

     

     

    quarta-feira, 4 de janeiro de 2012 11:35

Respostas

  • Ronnie, veja esse teste que fiz.

    Criei uma tabela com alguns dados. verifique se tem a ver com a estrutura da sua tabela, considerando só as duas colunas envolvidas na dúvida.

    create table OFHISTINDICADOR
    (
    IDOBJOFOBJOF char(5),
    datacoleta datetime
    )
    
    insert into OFHISTINDICADOR values 
    ('asdas','12/25/2009 08:00:00'),('trete','08/23/2010 08:00:00')
    
    IDOBJOFOBJOF datacoleta
    -----------------------
    asdas        2009-12-25 08:00:00.000
    trete        2010-08-23 08:00:00.000
    
    -- Esse select não retorna nada
    select * from OFHISTINDICADOR
    where  CONVERT(varchar,datacoleta,103) = '12/25/2009'
    
    -- Mas convertendo os dados e guardando os dados convertidos dentro da CTE, me retornou um valor
    
    WITH cte1 (IDOBJOF, datacoleta)
    AS
    
    (
        SELECT IDOBJOF, CONVERT(varchar,datacoleta,103) from OFHISTINDICADOR
    )
    SELECT *
    FROM cte1 
    where datacoleta = '25/12/2009'
    
    


    IDOBJOF datacoleta
    ------ ------------------------------
    asdas 25/12/2009

    Não funcionou com você ? Tente fazer esse exemplo.

    Se o meu exemplo não é bem o que você quer, é porque eu não entendi a pergunta.

     

     

     


    Robson Brandão

    • Editado Robson Brandão quarta-feira, 4 de janeiro de 2012 13:56
    • Marcado como Resposta Ronnie Von quinta-feira, 5 de janeiro de 2012 14:30
    quarta-feira, 4 de janeiro de 2012 13:54
  •  

    Simulei seu ambiente e fiz uma consulta que acho que te atende. É bem simples.

     

    CREATE TABLE OFHISTINDICADOR(DATACOLETA datetime, IDOBJOF varchar(5))
    GO
    
    INSERT INTO OFHISTINDICADOR SELECT GETDATE(), 'cb-01'
    INSERT INTO OFHISTINDICADOR SELECT DATEADD(month, 1, GETDATE()),  'cb-02'
    INSERT INTO OFHISTINDICADOR SELECT DATEADD(month, 2, GETDATE()),  'cb-03'
    INSERT INTO OFHISTINDICADOR SELECT DATEADD(month, 3, GETDATE()),  'cb-04'
    INSERT INTO OFHISTINDICADOR SELECT DATEADD(month, -1, GETDATE()), 'cb-05'
    GO
    
    SELECT CONVERT(VARCHAR, DATACOLETA, 103) DATACOLETA, IDOBJOF FROM OFHISTINDICADOR  WHERE CONVERT(VARCHAR, DATACOLETA, 103) = '04/01/2012'
    
    


    Boa sorte !

    ;)

    • Sugerido como Resposta Antero Marques quinta-feira, 5 de janeiro de 2012 14:26
    • Marcado como Resposta Ronnie Von quinta-feira, 5 de janeiro de 2012 14:30
    quarta-feira, 4 de janeiro de 2012 17:19
  • Tente usar CTE:

    WITH CTE_1 (IDOBJOF, DATACOLETA)
    AS
    (
    select id, convert(varchar,DATACOLETA,103) from OFHISTINDICADOR
    )
    SELECT * from CTE_1 where DATACOLETA = '15/07/2011'
    
    
    


    Rode tudo junto.


    Robson Brandão
    • Marcado como Resposta Ronnie Von quinta-feira, 5 de janeiro de 2012 14:30
    quarta-feira, 4 de janeiro de 2012 11:57

Todas as Respostas

  • Tente usar CTE:

    WITH CTE_1 (IDOBJOF, DATACOLETA)
    AS
    (
    select id, convert(varchar,DATACOLETA,103) from OFHISTINDICADOR
    )
    SELECT * from CTE_1 where DATACOLETA = '15/07/2011'
    
    
    


    Rode tudo junto.


    Robson Brandão
    • Marcado como Resposta Ronnie Von quinta-feira, 5 de janeiro de 2012 14:30
    quarta-feira, 4 de janeiro de 2012 11:57
  • Bom dia Ronnie,

     

    Confira no tópico abaixo uma questão semelhante a sua:

    http://social.msdn.microsoft.com/Forums/pt-BR/520/thread/9b6fe25d-3cb3-46a4-a655-3ba3b7c0a9f6

     

    Espero que seja útil.

     


    Assinatura: Imobiliarias em Suzano
    quarta-feira, 4 de janeiro de 2012 12:17
  • Robson usando conforme seu exemplo, ele me trouxe o seguinte resultado

    CB-05    2011-10-28 08:00:00.000

    eu gostaria que o resultado fosse 2011-10-28 sem as Horas

    obrigado

     

    quarta-feira, 4 de janeiro de 2012 13:12
  • Ronnie, veja esse teste que fiz.

    Criei uma tabela com alguns dados. verifique se tem a ver com a estrutura da sua tabela, considerando só as duas colunas envolvidas na dúvida.

    create table OFHISTINDICADOR
    (
    IDOBJOFOBJOF char(5),
    datacoleta datetime
    )
    
    insert into OFHISTINDICADOR values 
    ('asdas','12/25/2009 08:00:00'),('trete','08/23/2010 08:00:00')
    
    IDOBJOFOBJOF datacoleta
    -----------------------
    asdas        2009-12-25 08:00:00.000
    trete        2010-08-23 08:00:00.000
    
    -- Esse select não retorna nada
    select * from OFHISTINDICADOR
    where  CONVERT(varchar,datacoleta,103) = '12/25/2009'
    
    -- Mas convertendo os dados e guardando os dados convertidos dentro da CTE, me retornou um valor
    
    WITH cte1 (IDOBJOF, datacoleta)
    AS
    
    (
        SELECT IDOBJOF, CONVERT(varchar,datacoleta,103) from OFHISTINDICADOR
    )
    SELECT *
    FROM cte1 
    where datacoleta = '25/12/2009'
    
    


    IDOBJOF datacoleta
    ------ ------------------------------
    asdas 25/12/2009

    Não funcionou com você ? Tente fazer esse exemplo.

    Se o meu exemplo não é bem o que você quer, é porque eu não entendi a pergunta.

     

     

     


    Robson Brandão

    • Editado Robson Brandão quarta-feira, 4 de janeiro de 2012 13:56
    • Marcado como Resposta Ronnie Von quinta-feira, 5 de janeiro de 2012 14:30
    quarta-feira, 4 de janeiro de 2012 13:54
  •  

    Simulei seu ambiente e fiz uma consulta que acho que te atende. É bem simples.

     

    CREATE TABLE OFHISTINDICADOR(DATACOLETA datetime, IDOBJOF varchar(5))
    GO
    
    INSERT INTO OFHISTINDICADOR SELECT GETDATE(), 'cb-01'
    INSERT INTO OFHISTINDICADOR SELECT DATEADD(month, 1, GETDATE()),  'cb-02'
    INSERT INTO OFHISTINDICADOR SELECT DATEADD(month, 2, GETDATE()),  'cb-03'
    INSERT INTO OFHISTINDICADOR SELECT DATEADD(month, 3, GETDATE()),  'cb-04'
    INSERT INTO OFHISTINDICADOR SELECT DATEADD(month, -1, GETDATE()), 'cb-05'
    GO
    
    SELECT CONVERT(VARCHAR, DATACOLETA, 103) DATACOLETA, IDOBJOF FROM OFHISTINDICADOR  WHERE CONVERT(VARCHAR, DATACOLETA, 103) = '04/01/2012'
    
    


    Boa sorte !

    ;)

    • Sugerido como Resposta Antero Marques quinta-feira, 5 de janeiro de 2012 14:26
    • Marcado como Resposta Ronnie Von quinta-feira, 5 de janeiro de 2012 14:30
    quarta-feira, 4 de janeiro de 2012 17:19
  • Valeu Pessoal, consegui fazer com a ajuda de voces, parabens
    quinta-feira, 5 de janeiro de 2012 14:31