wrproject
10-01-2008, 14:24
boas,como faco uma instrucao em sql para listar registos entre uma data e outra?
agradeco a vossa ajuda
agradeco a vossa ajuda
|
View Full Version : datas em consultas sql wrproject 10-01-2008, 14:24 boas,como faco uma instrucao em sql para listar registos entre uma data e outra? agradeco a vossa ajuda mascker 10-01-2008, 15:16 Boas, $sql = "SELECT * FROM tabela WHERE data=>'2006-10-12' AND data <='2007-12-12' "; Saudações Lpes 10-01-2008, 15:18 SELECT atributo FROM tabelaWHERE atributoBETWEEN xAND y Isto é o standart sql. Penso que em quase todas as implementações do mesmo bastará um select atributo from tabela where atributo>x and atributo<y. Não sei se o BETWEEN x AND y estará implementado em todos os sistemas(no oracle está se não me engano). mcog_blaster 10-01-2008, 15:40 Boas, $sql = "SELECT * FROM tabela WHERE data=>'2006-10-12' AND data <='2007-12-12'"; Saudações So uma pequena correçao ja que esse query pode nao retornar correctamente os valors esperados. data=>'2006-10-12' AND data <='2007-12-12 23:59:59' mascker 10-01-2008, 18:30 So uma pequena correçao ja que esse query pode nao retornar correctamente os valors esperados. data=>'2006-10-12' AND data <='2007-12-12 23:59:59' Boas, Isso depende do campo que está na base de dados se é date ou datetime. Saudações, reise 10-01-2008, 22:15 Essas datas não deviam estar inseridas dentro de um to_date()? Em Oracle pelo menos devia ser assim: SELECT * FROM tabela WHERE data between to_date('2008-01-09 12:25:25','YYYY-MM-DD HH24:MI:SS') AND to_date('2008-01-10 12:25:25','YYYY-MM-DD HH24:MI:SS') mascker 10-01-2008, 22:32 Boas, Em Oracle não devia ser assim já que ele não quer converter nenhum valor. A função to_date() é utilizada para converter um valor do tipo string para um valor do tipo date. Em MySQL também existe essa função mas com o nome str_to_date(). Saudações reise 10-01-2008, 22:43 presumi que a coluna data era do tipo DATE. Se não usares o to_date nesse caso ele converte implicitamente com a máscara que achar que é, e muitas vezes não é! :) No meu trabalho já aconteceu tudo funcionar bem cá, mas quando isntalarm aquilo nos EUA começou a dar erros de data porque uma coluna que devia ser DATE era VARCHAR2 e ninguém tinha reparado. |