segunda-feira, 30 de julho de 2012

Instruções SET (Transact-SQL) – para Datas

SET DATEFIRST

Define o primeiro dia da semana como um número de 1 a 7.
Sintaxe
SET DATEFIRST { number | @number_var } 

É um inteiro que indica o primeiro dia da semana. Pode ser um dos seguintes valores. 
 

ValorO primeiro dia da semana é
1Segunda-feira
2Terça-feira
3Quarta-feira
4Quinta-feira
5Sexta-feira
6Sábado
7 (padrão, EUA Inglês)Domingo

Para visualizar a configuração atual de SET DATEFIRST, use a função @@DATEFIRST.

A configuração de SET DATEFIRST é definida no momento da execução e não no momento da análise.
Exemplos:
-- SET DATEFIRST to U.S. English default value of 7.
SET DATEFIRST 7;
SELECT CAST('1999-1-1' AS datetime2) AS SelectDate,DATEPART(dw, '1999-1-1') AS DayOfWeek;
SET DATEFIRST 3;
SELECT CAST('1999-1-1' AS datetime2) AS SelectDate ,DATEPART(dw, '1999-1-1') AS DayOfWeek;
GO



SET DATEFORMAT


Define a ordem das partes do mês, dia e ano para interpretar date, smalldatetime, datetime, datetime2 e cadeias de caracteres datetimeoffset.
Sintaxe
SET DATEFORMAT { format | @format_var } 

É a ordem das partes de data. Parâmetros válidos são mdy, dmy, ymd, ydm, myde dym. Este argumento ou pode ser Unicode ou conjuntos de caracteres de dois bytes (DBCS) convertidos para Unicode. O padrão do inglês dos EUA é mdy.

Exemplos:
-- Set date format to day/month/year.
SET DATEFORMAT dmy;
GO
DECLARE @datevar datetime2 = '31/12/2008 09:01:01.1234567';
SELECT @datevar;
GO
-- Result: 2008-12-31 09:01:01.123
SET DATEFORMAT dmy;
GO
DECLARE @datevar datetime2 = '12/31/2008 09:01:01.1234567';
SELECT @datevar;
GO
-- Result: Msg 241: Conversion failed when converting date and/or time -- from character string.

GO

Fonte: http://msdn.microsoft.com/pt-br/library/ms190356.aspx

Nenhum comentário: