terça-feira, agosto 27, 2013

Algumas operações com data no Firebird

HI,

Algumas operações que uso. Hoje mesmo precisei retornar a semana do ano de uma data, saber a data do primeiro e último dia da semana.

Por exemplo, hoje são 27/08/2013. O dia da semana é 35. A data do primeiro dia da semana 35 é 25/08/2013 e o último é 31/08/2013.

Para retornar a semana do ano com base em uma data
trunc((EXTRACT(YEARDAY FROM (data - EXTRACT(WEEKDAY FROM data-1) + 3)) - EXTRACT(WEEKDAY FROM (data - EXTRACT(WEEKDAY FROM data-1) + 3)-1) + 7) / 7e0) + 1

Se quiser a data Atual: current_date
Se quiser converter uma string para data: cast('08/27/2013' as date)

Data do primeiro dia da semana:
(current_date - EXTRACT(WEEKDAY FROM current_date))

Data do último dia da semana:
(current_date + (6 - EXTRACT(WEEKDAY FROM current_date)))


Base da lógica para pegar a semana do ano
http://www.volny.cz/iprenosil/interbase/ip_ib_code_timestamp.htm

Funções
Day of Week
First/last day of month
Number of days in month
Week of year
Is Leap Year ?



Fiquem na Paz!!!

Nenhum comentário: