SQL para Agrupar (Group By) por data

Pessoal…estou com o seguinte problema…Procurei aqui no fórum mas não achei…
O problema é o seguinte:
Tenho um select para adicionar em um relatório no ireport. onde presciso agrupar os dados por data.
Até aí ok… o problema é que as datas são gravadas no formato ‘yyyy-MM-dd hh:mm:ss’ assim quando eu posto o group by no sql ele não agrupa as
datas corretamente pelo fato que cada data possui hora minuto e segundo…assim para o banco não reconhece como mesma data…
Outro problema… No meu sistema possui duas opções, trabalhar com servidor de dados separado, no caso o postgresql e a opção de trabalhar com um banco de dados embutido, no caso o derby.

Pesquisei para comparar datas , no postgres daria para usar o TO_CHAR(DATA,‘yyyy-MM-dd’) para formatar a data e retirar minutos e segundos para agrupar, mas no derby isso não funciona… eu prescisaria de um sql puro , ou seja que funcionasse nos dos bds para que o relatório fosse gerado independente de qual dos bancos estariam sendo usados.

Um exemplo pra ficar mais claro:
Tenho uma tabela no BD

CAIXA
CD           TERMINAL                         DATA                                   VALOR
1                       1                       2009-08-15 13:30:56                     150.00
2                       2                       2009-08-15 13:15:00                     140.00
3                       1                       2009-08-16  13:20:50                     120.00
4                       2                       2009-08-16  13:21:50                     115.00

Gostaria de fazer aparecer no relatório a listagem agrupada por data
o resultado final deveria sair assim:

DATA                                                 VALOR
2009-08-15                                         290.00          //somou os dois registros do dia 15
2009-08-16                                         135.00          //somou os dois registros do dia 16

O select que eu estava implementando está assim

     SELECT 
                  DATA,  // TO_CHAR(DATA,'YYY-MM-DD') AS DT funciona no postgresql mas no derby não existe o comando TO_CHAR
                  SUM(VALOR) AS VL


     FROM CAIXA
     
    GROUP BY DATA
    ORDER BY DATA

Se alguém puder me ajudar, agradeço

leopoldof,

Acredito que se o Derby não tiver o TO_CHAR ele possa ter uma outra função que faça algo parecido.
Nunca usei o Derby. Mas tenta dá uma pesquisada. Se for o caso, tenta fazer com que o Derby ignore as horas do campo data.

Abraço.