JCalendar + Date + Datetime SQL Server

Estou com um duvida e um problema.

Qual melhor tipo de dados para trabalhar com datas no SQLSERVER? datetime,smalldatetime ou timestamp.

Para teste eu estou usando o datetime porem tive alguns problemas.

primeiro:

Trabalhando com o JCalendar como eu transformo a data escolhida em um tipo Date?

//tentei esse aqui, funciona certinho mas qdo vou mostrar na tela aparece a mesma coisa.


SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
formatter.format(dtinicio);

tentei com o parse(String); mas encontrei erro.

em seguida extrai um valor por vez, mas aqui eu tive que mandar o Calendar para a minha classe de persistencia.

s = String.valueOf(dtnascimento.get(Calendar.MONTH)+1) 
  + "/" + String.valueOf(dtnascimento.get(Calendar.DAY_OF_MONTH))
  + "/" + String.valueOf(dtnascimento.get(Calendar.YEAR));    

Agora funcionou certo. entretanto eu gostariade fazer a inserção no banco como date e não com uma string em um campo datetime.

Alguem já conseguiu fazer?ou alguma dica?

Obrigado

ninguem?