On Demand

Tempo de leitura estimado: 1 minuto

Apresento a você o espaço “On Demand”.

A idéia é que você sugira um assunto para que eu possa tentar falar sobre.  Claro que não vou fazer isso para todos, mas no mínimo irei justificar os motivos e tentar indicar alguma referência.

Use os comentários para enviar um tema de sua preferência.

[ ]’s
Rodrigo

Comments ( 8 )

  1. / ReplyRenato Siqueira
    Gostaria de ver uma postagem sua sobre o tema Indexes: Diagnóstico e Tratamento (Detectando fragmentação, Rebuild e Reorganize). Se for postar material de dev, algumas dicas de tuning, casos que você já passou reproduzidos via código, etc. Aproveita também e tempera ambos os conteúdos com Internals. []s
  2. / ReplyRenato Siqueira
    Tempera o primeiro conteúdo com*
  3. / ReplyRodrigo Ribeiro Gomes
    Anotado! É um bom tema!!!! Em breve nas nossas páginas!
  4. / Replybrizola
    Encriptação, Server master Key, certificados, etc ! É um assunto que vejo gente ter medo só de olhar hehehehehehe
    • / ReplyRodrigo Ribeiro Gomes
      Show brizola! Gostei do tema. Realmente existe pouco conteúdo e a maioria do que li não detalha bem as aplicações e as restrições. Pode ter certeza que este tema está na lista. Já li um pouco a respeito em vários lugares, e tirei minhas conclusões. Irei procurar mais materiais, principalmente as aplicações, o que atende e o que não atende. Obrigado!!!!
  5. / ReplyGiulliano
    Olá. Vi seus artigos sobre os campos "Data e hora". Trabalho em uma instituição de ensino, onde podemos ter uma aula, por exemplo, das 17h as 24h (meia noite). Como armazenar este 24H no banco, de forma que ele possa calcular o tempo de aula? Por exemplo, 24 - 17 = 7 horas aulas.
    • / ReplyRodrigo Ribeiro Gomes
      Oi Giulliano! Se for um SQL Server 2008 ou posterior (você pode conferir usando o comando SELECT @@VERSION), você pode utilizar o tipo de dados "time". Com o tipo time você consegue armazenar horas no formato 00:00:00. Exemplo: CREATE TABLE Aulas( IdAula int, HoraInicio time, HoraFim time ); INSERT INTO Aulas(IdAula,HoraInicio,HoraFim) values ( 1 , '17:00:00', '23:59:59.999' ) INSERT INTO Aulas(IdAula,HoraInicio,HoraFim) values ( 2 , '17:00:00', '23:00' ) INSERT INTO Aulas(IdAula,HoraInicio,HoraFim) values ( 3 , '17:00:00', '23:01' ) INSERT INTO Aulas(IdAula,HoraInicio,HoraFim) values ( 4 , '17:00:00', '23:45' ) INSERT INTO Aulas(IdAula,HoraInicio,HoraFim) values ( 5 , '17:00:00', '23:30' ) INSERT INTO Aulas(IdAula,HoraInicio,HoraFim) values ( 6 , '17:00:00', '23:31' ) INSERT INTO Aulas(IdAula,HoraInicio,HoraFim) values ( 6 , '17:00:00', '23:00:00.001' ) -- A diferença em horas, retorna somente a parte inteira! Logo, como a diferença é 6.98 horas, a função DATEDIFF(HOUR,) retorna 6 horas (oo que é incorreto para a faixa de 17 as meia noite! select *,DATEDIFF(HOUR,HoraInicio,HoraFim) HorasAula From Aulas -- Você pode contornar isso calculando em minutos e arrendando! Se a parte decimal for maior que 0.5, ele arredonda pra cima, se for menos, pra baixo! select *,DATEDIFF(MI,HoraInicio,HoraFim)/60.00 DiffMin,CONVERT(int,ROUND(DATEDIFF(MI,HoraInicio,HoraFim)/60.00,0)) HorasAula From Aulas -- Se você quiser sempre arredondar pra cima, mesmo passando 1 milissegundinho, utilize a função CEILING e o DATEDIFF em milissegundos: select *,DATEDIFF(MS,HoraInicio,HoraFim)/3600000.00 DiffMs,CEILING(DATEDIFF(MS,HoraInicio,HoraFim)/3600000.00) HorasAula From Aulas

Leave a reply

Your email address will not be published.