1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Condição Like SQL - [RESOLVIDO]

Discussão em 'Programação' iniciada por candycane, 15 de Setembro de 2008. (Respostas: 13; Visualizações: 3628)

  1. candycane

    candycane Power Member

    Boa tarde comunidade!

    Estou com uma dificuldade em usar a condição like...
    O que pretendo é seleccionar as actividades que comecem pela data escolhida.

    O campo Data na base de dados é do tipo datetime.
    Tenho:

    Código:
    
    SELECT CONVERT(varchar(10), Data, 105) as data
    FROM Actividade
    WHERE data LIKE '13%'
    
    
    So que o resultado é nulo, mas não é verdade :(
     
    Última edição: 15 de Setembro de 2008
  2. jammed

    jammed Power Member

    O problema é que na where clause não consegue ver o nome da coluna.
    Se experimentares por:

    SELECT CONVERT(varchar(10), Data, 105) as data2
    FROM Actividade
    WHERE data2 LIKE '13%'

    vais reparar que ele n encontra a coluna "data2".

    Qual é o teu objectivo? Encontrar datas cujo dia seja o 13?
     
  3. el_zeus

    el_zeus Power Member

    Select data2
    from (SELECT CONVERT(varchar(10), Data, 105) as data2
    FROM Actividade)
    WHERE data2 LIKE '13%'
     
  4. candycane

    candycane Power Member

    Da-me um erro perto do where...
     
  5. candycane

    candycane Power Member

    O objectivo é selecionar as actividades que comecem nesse dia, ou dia e mes(13-09%)
     
  6. Karski

    Karski Power Member

    select *
    from ACTIVIDADE
    where to_char(data, 'DD') = 13
     
  7. candycane

    candycane Power Member

    'to_char' is not a recognized function name.

    :(
     
  8. candycane

    candycane Power Member

    estou no sql server... :\
     
  9. el_zeus

    el_zeus Power Member

    O que te dei foi um pseudocodigo procura no google como fazer um select sobre outro select em sqlserver ...
     
  10. Karski

    Karski Power Member

    Ok desculpa é o habito de trabalhar com ORacle.

    Em SQL podes usar por exemplo a função DATEPART(portion, datetime);

    no teu caso funcionaria como

    select *
    from ACTIVIDADE
    where datepart(Dd, data) = 13
     
  11. Karski

    Karski Power Member

    Para que um select de um select quando existem funções internas que fazem o que ele pretende?
     
  12. el_zeus

    el_zeus Power Member

    sqlserver nao é o meu forte ... normalmente trabalho com oracle ...
     
  13. Karski

    Karski Power Member

    És tu e eu :)
     
  14. candycane

    candycane Power Member

    Acho muito estranho não ter conseguido como fiz de inicio....

    Mas resolvi o problema assim:

    Código:
    
    SELECT Data
    FROM Actividade
    WHERE day(Data) LIKE '13%' AND month(Data) LIKE '%10%' AND year(Data) LIKE '%2%'
    
    
    Obrigada a todos :)
     

Partilhar esta Página