Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Tem alguma forma de se criar uma função q me retorne todas as datas de um mês e ano específicados como parâmetros?
Sei q em SQL Server existe uma forma de se criar esta função, então será q teria isso em MySQL?
Grato,
Ilano.
Olá Wagner,
O q estou procurando é uma função q me retorne as datas com dia/mês/ano, como a função abaixo (em SQL Server). Eu tentei fazer as alterações para MySQL mas não consegui. Esse script é interessante pq ele me traz todas as datas referente ao mês do dia 1 ao dia 28 ou 29 ou 30 ou 31 (dependendo do mês e do ano, inclusive anos bissextos).
Se puder(em) me ajdar nisso!
>
CREATE function fnDatas2(@ano smallint, @mes tinyint)
returns @datas table (data smalldatetime)
as
begin
declare @dataInicial datetime
declare @dataFinal datetime
SELECT @dataInicial = cast(@ano as varchar(4))+ '-' +cast(@mes as varchar(2)) + '- 01'
SELECT @dataFinal = DATEADD(DAY,-1,DATEADD(MONTH,1,@dataInicial))
WHILE @dataInicial <= @dataFinal
begin
insert into @datas values (@dataInicial)
SELECT @dataInicial = DATEADD(DAY,1,@dataInicial)
end
return
end
SELECT * FROM fnDatas2(2007,3)
Veja as funções MONTH() e YEAR().
SELECT dados FROM tabela WHERE month(campo_data) = '5' AND year(campo_data) = '2007';
pelo que entendi, é isso que você quer. Se não for, explique melhor.
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Olá Beraldo,
Não, não é isso. O q estou precisando é gerar uma função q me retorne um calendário. Naquela função de exemplo q postei anteriormente ela faz exatamente isso, só q como uma tabela, e eu posso consultá-la por qualquer ano q seja e ela vai me retornar as datas corretas referente àquele ano e mês. O exemplo q você postou é uma consulta no meu banco e só me retornará as datas q já foram cadastradas. Se você tiver um SQL na sua máquina vai entender o q estou procurando. Essa função quebra o maior galhão em aplicações web, por exemplo, quando se precisar ter um calendário num DropDownList, desde q se trabalhe com o ano e mês corrente.
crie uma tabela chamada calendario e deixe o php(ou outra linguagem qualquer) preencher ela dinaminicamente +- assim....
$k =0;
while ($k != 3650)
{
mysql_query("
INSERT into calendario
VALUES( 2000-01-01 + INTERVAL $k DAY
");
$k++;
}
isso vai gerar um calendaraio de 2000 a 2010 +-, pulando todas as datas erradas,,,
http://dev.mysql.com/doc/refman/5.0/en/dat...-functions.html
Dê uma olhada nisso amigão: http://dev.mysql.com/doc/refman/5.0/en/dat...-functions.html
Abração, DEUS abençõe. http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif