Array
(
)

Como atribuir um valor para a hora de uma data?

Ricardo Albano
|
MVP
    13 mar 2012

Olá,
Estou precisando atribuir um novo valor para uma hora.
Situação é a seguinte: tenho a data e hora de um evento, caso a hora seja inferior as 08:00hs da manhã, devo mudar a hora para as 08:00hs. Como posso fazer?

Alex Lekao
   - 16 mar 2012

Ola Ricardo, bom dia!!

Como estão os campos? esta como date ou datetime, etc?

Nao sei se entendi bem, mas acredito que vc posa usar o case.

CASE WHEN CAMPOX <= 08:00 THEN 08:00 ELSE CAMPOX END

Mais ou menos isso. rsrsr

Abraco.

Ricardo Albano
|
MVP
    20 mar 2012

Olá, Alex.

Desculpe a demora.
Os campos são datetime.
eu já consegui alterar a hora para as 08:00, com ajuda dos foruns.
Ficou assim: dateadd(hour, 8, cast(cast (@data as int) as datetime)). Funciona legal.
O meu problema, agora, aparece quando foi fazer a mesma coisa, só que para o período da tarde, ou seja, se iniciar antes das 13:00 horas, devo colocar 13. Só que ao mudar para 13:00 o sql server esta alterando para o dia seguinte.

Tem alguma sugestão? Já tentei com o set language brazilian, mas não deu.

Alex Lekao
   - 22 mar 2012

Oi Ricardo, boa tarde!!!

Deste jeito que vc disse que fez, todas as datas estao sendo convertidas para 8:00, e as que tem horario iguais ou superiores a 12:00, estao ficando para o Dia seguinte.

O comando que vc esta usando esta adicionando 8 horas ao que vc ja tinha de horario no campo.

se nao estiver errado, todas os registros estao ficando com 8 no horario inclusive aqueles que sao depois de 8 horas.

Era isto mesmo que vc queria?