out 21, 2008 - Geral    1 Comentário

JAVA/Datas/MSSQL

Estou trabalhando em um sistema em que eu precisava recuperar campos com data de um banco MSSQL. Até aí tudo bem, mas na hora de converter aquele formato datetime do banco para o formato que eu estava precisando (dd/mm/yyyy), a coisa fica chata de fazer.
Como sou da lei do menor esforço, depois de ter batido cabeça fazendo a conversão usando o Java, lembrei que muitas destas funções triviais já são métodos internos do banco de dados.
Depois de consultar o Google, achei uma documentação sobre o método convert. Seu uso é simples: CONVERT(data_type,expression [,style]).

Por exemplo: SELECT OrderDate, CONVERT(nvarchar(10), OrderDate, 101) FROM Orders.

O “style” 101 representa a máscara ‘mm/dd/yy’.

Os “styles” seguem a seguinte tabela:


Without century (yy) With century (yyyy) Standard Input/Output2
- 0 or 100 1 Default mon dd yyyy hh:miAM (or PM)
1 101 USA mm/dd/yy
2 102 ANSI yy.mm.dd
3 103 British/French dd/mm/yy
4 104 German dd.mm.yy
5 105 Italian dd-mm-yy
6 106 - dd mon yy
7 107 - Mon dd, yy
8 108 - hh:mm:ss
- 9 or 109 1 Default + milliseconds mon dd yyyy hh:mi:ss:mmmAM (or PM)
10 110 USA mm-dd-yy
11 111 JAPAN yy/mm/dd
12 112 ISO yymmdd
- 13 or 113 1 Europe default + milliseconds dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 or 120 1 ODBC canonical yyyy-mm-dd hh:mi:ss(24h)
- 21 or 121 1 ODBC canonical (with milliseconds) yyyy-mm-dd hh:mi:ss.mmm(24h)
- 1263 ISO8601 yyyy-mm-dd Thh:mm:ss.mmm(no spaces)
- 1301 Hijri4 dd mon yyyy hh:mi:ss:mmmAM
- 1311 Hijri4 dd/mm/yy hh:mi:ss:mmmAM

Não creio que essa operação onere muito o banco de dados, mas ainda vou verificar isso com os nossos DBA’s.

1 Comentário

  • Mas é bom esse MSSQL….

Got anything to say? Go ahead and leave a comment!

Comments will be sent to the moderation queue.