Usuário com melhor resposta
Especificar semana com ano

Pergunta
-
Boas
Estou a exprimentar este código:
select DATENAME(DAYOFYEAR,CAST(campo_data as datetime)/7+1), year(CAST(campo_data as datetime)) as SEMAN from teste21 Mas da-me um erro: Msg 257, Level 16, State 3, Line 1 Implicit conversion from data type datetime to int is not allowed. Use the CONVERT function to run this query.
Nota: O campo em que tenho a data é nvarchar. Mas o Cast já deve resolver...
Obrigado
Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com
Respostas
-
Flashed,
Veja se o exempl oabaixo te ajuda
declare @pesquisa_semana as table( data varchar(max) ); insert into @pesquisa_semana values('04-01-2011') insert into @pesquisa_semana values('08-02-2011') insert into @pesquisa_semana values('08-03-2011') insert into @pesquisa_semana values('04-04-2011') insert into @pesquisa_semana values('04-05-2011') insert into @pesquisa_semana values('07-02-2011') select DATEPART( WW,data) - 1, DATENAME(WK,DATA) from @pesquisa_semana
Adriano Nascimento- Marcado como Resposta Jonas São Paulo segunda-feira, 2 de abril de 2012 08:00
-
Oi Flashed, eu fiz um exemplo com o campo nvarchar(max) que é exatamente o teu caso.
Veja se isso resolve teu problema.
declare @data nvarchar(max)= '30/03/2012' select 'SEMANA ', DATENAME(WK,CONVERT(datetime,CAST(@data as varchar(10)),103)), ' do ano ', DATENAME(YYYY,CONVERT(datetime,CAST(@data as varchar(10)),103))
Espero que seja o que tu precisa.
Vlew.
--
Marcus Vinícius Bittencourt
blog: isqlserver.wordpress.com
www.sqlserverRS.com.br- Sugerido como Resposta Adriano Ap Nascimento sexta-feira, 30 de março de 2012 12:07
- Marcado como Resposta Jonas São Paulo segunda-feira, 2 de abril de 2012 07:59
Todas as Respostas
-
-
Adriano o objectivo desse código é escrever numa coluna ao lado a semana correspondente da data. Deve ficar algo assim:
Semana 1 de 2012
pois depois vou fazer um select com a pesquisa por semana do ano.
Mas se houver algum código que fosse especifique a semana do ano e ele faça a busca em campos no formato 01-02-2012 era o ideial. Poupava.me código.
Acha que existe?
Obrigado
Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com
-
Flashed,
Veja se o exempl oabaixo te ajuda
declare @pesquisa_semana as table( data varchar(max) ); insert into @pesquisa_semana values('04-01-2011') insert into @pesquisa_semana values('08-02-2011') insert into @pesquisa_semana values('08-03-2011') insert into @pesquisa_semana values('04-04-2011') insert into @pesquisa_semana values('04-05-2011') insert into @pesquisa_semana values('07-02-2011') select DATEPART( WW,data) - 1, DATENAME(WK,DATA) from @pesquisa_semana
Adriano Nascimento- Marcado como Resposta Jonas São Paulo segunda-feira, 2 de abril de 2012 08:00
-
Muito bom Adriano :)
Funcionou beleza
Tenho é apenas um problema. As minha datas são dia/mes/ano e as suas são mes/dia/ano.
Como posso alterar o código que voce me passou para o meu formato?
Obrigado
Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com
-
-
Oi Flashed, eu fiz um exemplo com o campo nvarchar(max) que é exatamente o teu caso.
Veja se isso resolve teu problema.
declare @data nvarchar(max)= '30/03/2012' select 'SEMANA ', DATENAME(WK,CONVERT(datetime,CAST(@data as varchar(10)),103)), ' do ano ', DATENAME(YYYY,CONVERT(datetime,CAST(@data as varchar(10)),103))
Espero que seja o que tu precisa.
Vlew.
--
Marcus Vinícius Bittencourt
blog: isqlserver.wordpress.com
www.sqlserverRS.com.br- Sugerido como Resposta Adriano Ap Nascimento sexta-feira, 30 de março de 2012 12:07
- Marcado como Resposta Jonas São Paulo segunda-feira, 2 de abril de 2012 07:59
-