Algumas funcoes em Javascript que na verdade sao atalhos para sintaxe de VB.Pra quem ainda nao esta acostumado com linguagens derivadas do C, acaba sendo util.//Retorna uma quantidade especifica de caracteres de uma string, contando da esquerda para a direita.function Left(str, n){if (n <= 0) {return ""; }else if (n > String(str).length){return str; }else{return String(str).substring(0,n); }}//Retorna uma quantidade especifica de caracteres de uma string, contando da direita para a esquerda.function Right(str, n){if (n <= 0) {return ""; }else if (n > String(str).length){return str;}else {var iLen = String(str).length;return String(str).substring(iLen, iLen - n);}}//Remove os espacos no inicio e no fim da string.//Ex.: Trim(" Alisson "); retorna "Alisson".function Trim(str){return str.replace(/^\s+\s+$/g,"");}facam bom proveito :) Ja vi muita gente dizer que mexer com data e chato em qualquer linguagem de programacao. Concordo com as pessoas que ouvi dizer isso. O legal e que com o tempo voce vai se acostumando e logo a tarefa chata de lidar com formatacao se torna algo comum. Seja pela experiencia pratica ou por macetes que a gente aprende.O que vou descrever nesse post e um macete muito util pra formatacao de datas no SQL Server, ja que este nao dispoe de uma funcao nativa onde possamos formatar uma data sem ter que ficar decorando parametros numericos de conversao.Se eu precisar usar converter uma data pro formato "YYYYMMDD", precisamos fazer o seguinte:SELECT CONVERT(CHAR(8), GETDATE(), 112)Nao seria muito mais intuitivo se pudessemos fazer assim? :SELECT CONVERT(VARCHAR, GETDATE(), 'YYYYMMDD')E. Mas nao funciona assim.Com isso, descrobri uma UDF (user defined function) que facilita nossa vida.A funcao e a seguinte:CREATE FUNCTION dbo.FormatDateTime(@dt DATETIME,@format VARCHAR(16))RETURNS VARCHAR(64)ASBEGINDECLARE @dtVC VARCHAR(64)SELECT @dtVC = CASE @formatWHEN 'LONGDATE' THENDATENAME(dw, @dt)+ ',' + SPACE(1) + DATENAME(m, @dt)+ SPACE(1) + CAST(DAY(@dt) AS VARCHAR(2))+ ',' + SPACE(1) + CAST(YEAR(@dt) AS CHAR(4))WHEN 'LONGDATEANDTIME' THENDATENAME(dw, @dt)+ ',' + SPACE(1) + DATENAME(m, @dt)+ SPACE(1) + CAST(DAY(@dt) AS VARCHAR(2))+ ',' + SPACE(1) + CAST(YEAR(@dt) AS CHAR(4))+ SPACE(1) + RIGHT(CONVERT(CHAR(20),@dt - CONVERT(DATETIME, CONVERT(CHAR(8),@dt, 112)), 22), 11)WHEN 'SHORTDATE' THENLEFT(CONVERT(CHAR(19), @dt, 0), 11)WHEN 'SHORTDATEANDTIME' THENREPLACE(REPLACE(CONVERT(CHAR(19), @dt, 0),'AM', ' AM'), 'PM', ' PM')WHEN 'UNIXTIMESTAMP' THENCAST(DATEDIFF(SECOND, '19700101', @dt)AS VARCHAR(64))WHEN 'YYYYMMDD' THENCONVERT(CHAR(8), @dt, 112)WHEN 'YYYY-MM-DD' THENCONVERT(CHAR(10), @dt, 23)WHEN 'YYMMDD' THENCONVERT(VARCHAR(8), @dt, 12)WHEN 'YY-MM-DD' THENSTUFF(STUFF(CONVERT(VARCHAR(8), @dt, 12),5, 0, '-'), 3, 0, '-')WHEN 'MMDDYY' THENREPLACE(CONVERT(CHAR(8), @dt, 10), '-', SPACE(0))WHEN 'MM-DD-YY' THENCONVERT(CHAR(8), @dt, 10)WHEN 'MM/DD/YY' THENCONVERT(CHAR(8), @dt, 1)WHEN 'MM/DD/YYYY' THENCONVERT(CHAR(10), @dt, 101)WHEN 'DDMMYY' THENREPLACE(CONVERT(CHAR(8), @dt, 3), '/', SPACE(0))WHEN 'DD-MM-YY' THENREPLACE(CONVERT(CHAR(8), @dt, 3), '/', '-')WHEN 'DD/MM/YY' THENCONVERT(CHAR(8), @dt, 3)WHEN 'DD/MM/YYYY' THENCONVERT(CHAR(10), @dt, 103)WHEN 'HH:MM:SS 24' THENCONVERT(CHAR(8), @dt, 8)WHEN 'HH:MM 24' THENLEFT(CONVERT(VARCHAR(8), @dt, 8), 5)WHEN 'HH:MM:SS 12' THENLTRIM(RIGHT(CONVERT(VARCHAR(20), @dt, 22), 11))WHEN 'HH:MM 12' THENLTRIM(SUBSTRING(CONVERT(VARCHAR(20), @dt, 22), 10, 5)+ RIGHT(CONVERT(VARCHAR(20), @dt, 22), 3))ELSE'Invalid format specified'ENDRETURN @dtVCENDGOBasta executar o codigo acima no console do seu SQL. Se voce utiliza SQL 7 ou inferior, nao tem problema, crie uma StoredProcedure e devolva o resultado num parametro de Output.Para testar a funcao e todas as suas possibilidades, utilize o seguinte:DECLARE @now DATETIMESET @now = GETDATE()PRINT dbo.FormatDateTime(@now, 'LONGDATE')PRINT dbo.FormatDateTime(@now, 'LONGDATEANDTIME')PRINT dbo.FormatDateTime(@now, 'SHORTDATE')PRINT dbo.FormatDateTime(@now, 'SHORTDATEANDTIME')PRINT dbo.FormatDateTime(@now, 'UNIXTIMESTAMP')PRINT dbo.FormatDateTime(@now, 'YYYYMMDD')PRINT dbo.FormatDateTime(@now, 'YYYY-MM-DD')PRINT dbo.FormatDateTime(@now, 'YYMMDD')PRINT dbo.FormatDateTime(@now, 'YY-MM-DD')PRINT dbo.FormatDateTime(@now, 'MMDDYY')PRINT dbo.FormatDateTime(@now, 'MM-DD-YY')PRINT dbo.FormatDateTime(@now, 'MM/DD/YY')PRINT dbo.FormatDateTime(@now, 'MM/DD/YYYY')PRINT dbo.FormatDateTime(@now, 'DDMMYY')PRINT dbo.FormatDateTime(@now, 'DD-MM-YY')PRINT dbo.FormatDateTime(@now, 'DD/MM/YY')PRINT dbo.FormatDateTime(@now, 'DD/MM/YYYY')PRINT dbo.FormatDateTime(@now, 'HH:MM:SS 24')PRINT dbo.FormatDateTime(@now, 'HH:MM