Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fabriciohp

ano bissexto

Recommended Posts

Alguém poderia me dizer como fazer uma consulta pra buscar quais anos (do nascimento) foram bissestos?

 

select nome, nascimento from funcionario
where "anos bissestos.."

Compartilhar este post


Link para o post
Compartilhar em outros sites

i aew fabriciohp, então não conheço nehuma função que faça isso, mas criei uma de exemplo:

DELIMITER $

DROP FUNCTION IF EXISTS FC_bissexto $
CREATE FUNCTION FC_bissexto( dateNasc DATE ) RETURNS VARCHAR(255)
BEGIN
DECLARE intAno INTEGER DEFAULT YEAR( dateNasc ) ;
DECLARE strAnos VARCHAR(255) DEFAULT '' ;
	WHILE ( intAno < YEAR( SYSDATE() ) ) DO
		IF ( ( ( intAno % 4 ) = 0 AND ( intAno % 100 ) != 0 ) OR ( intAno % 400 ) = 0 ) THEN
			SET strAnos = CONCAT( strAnos , intAno , ',' ) ;
		END IF ;
		SET intAno = intAno + 1 ;
	END WHILE ;
RETURN SUBSTRING( strAnos , 1 , ( LENGTH( strAnos ) - 1 ) ) ;
END $

DELIMITER ;

e você chama ela assim:

SELECT FC_bissexto( '1994-01-01' )
espero que ajude abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

select * from taba

where

DAY(CONCAT(year(niver),'02','28')+ INTERVAL 1 DAY) = 29

 

Valeu! :D

outra coisa, como faço agora pra dizer na query que todo dia 29 de fevereiro dos anos não-bisextos são igual a 1 de março?

Compartilhar este post


Link para o post
Compartilhar em outros sites

depende, no select seria com IF

no where seria com OR

exemplifique mais para q possamos ajudar

 

pode ser de qualquer jeito, desde que funcione, e que dê pra explicar o porque desse jeito :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom,sinceramente nao entendi o q você quer =/

 

uhauhaua, é assim, uma query que busque o nome e a data de nascimento de todos as pessoas que fazem aniversário na segunda-feira da semana atual.

Compartilhar este post


Link para o post
Compartilhar em outros sites

, é assim, uma query que busque o nome e a data de nascimento de todos as pessoas que fazem aniversário na segunda-feira da semana atual.

qual a relação disso com "ano bissexto" ?

 

consultou o manual referente às funções de data ?

 

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

 

por causa do anos bisextos todos os dias 29 de fevereiros não-bisextos vão ser iguais a 1 de março, senão a query não vem certo.

já..

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que você pretende fazer e segundo o que explicou nos posts, não há necessidade em check Leap Year

..

 

 

exemplo,

retorna todos que fazem aniversário na segunda feira..

SELECT 
      
   BirthDate,
   PersonName
   
FROM

   TableName
   
WHERE

   DAYOFWEEK( BirthDate ) = 2

 

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_dayofweek

 

 

 

obs: isso é apenas um exemplo.

para abstrair aqueles que fazem aniversário numd eterminado dia da semana da semana corrente, basta adicionar nas condicionais.

consulte o manual e aplique a função adequada ao seu caso.

 

caso a referida coluna esteja definida como DATETIME, utilize

SUBSTRING( BirthDate, 1, 10 )

 

 

já.. ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que você pretende fazer e segundo o que explicou nos posts, não há necessidade em check Leap Year

..

 

 

exemplo,

retorna todos que fazem aniversário na segunda feira..

SELECT 
      
   BirthDate,
   PersonName
   
FROM

   TableName
   
WHERE

   DAYOFWEEK( BirthDate ) = 2

 

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_dayofweek

 

 

 

obs: isso é apenas um exemplo.

para abstrair aqueles que fazem aniversário numd eterminado dia da semana da semana corrente, basta adicionar nas condicionais.

consulte o manual e aplique a função adequada ao seu caso.

 

caso a referida coluna esteja definida como DATETIME, utilize

SUBSTRING( BirthDate, 1, 10 )

 

 

já.. ??

 

preciso checar o leap, por que precso de todos que fazem aniversário na segunda feira da semana atual

Compartilhar este post


Link para o post
Compartilhar em outros sites

não faz sentido pois basta pegar a data atual e fazer a comparação..

 

não precisa de nada disso que está tentanto fazer, consulte a página do manual

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.