Jump to content


Photo

Resgatando Uma Data Do Mysql


  • Faça o login para participar
9 replies to this topic

#1 GifsBrasil

GifsBrasil

    12 Horas

  • Usuários
  • 224 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 29/01/2004, 23:03

estou com uma data no banco de dados no formato ano-mes-dia (2004-01-29)

acontece q eu quero pegar soh o dia, ou mes.. ou ano e nao consigo! :(

como faço?
------------------------
GifsBrasil.com
ICQ 27189411
-------------------------

#2 Robson

Robson

    Turista

  • Usuários
  • 46 posts
  • Sexo:Não informado

Posted 29/01/2004, 23:08

use o substr, dessa forma:

$ano = substr($data, 0, 4);
$mes = substr($data, 5, 2);
$dia = substr($data, 8, 2);

#3 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 30/01/2004, 00:41

Olá. Pode fazer direto pelo SQL também:

SELECT DAY(Campo) ...
SELECT MONTH(Campo) ...
SELECT YEAR(Campo) ...


#4 ffmm

ffmm

    Veterano

  • Usuários
  • 1224 posts
  • Sexo:Não informado

Posted 30/01/2004, 00:42

Vc pode usar a função DATE_FORMAT() do MySQL.
Fica assim:
SELECT DATE_FORMAT(campo_de_data, '%d/%m/%y') AS data FROM tabela;
No caso, campo_de_data é o seu campo que possui as datas, %d/%m/%y é a mascara de como os dados virão. Sendo %d = dia, %m = mês e %y = ano. e AS serve para que o nome do campo seja data (para que depois do mysql_fetch_array, vc possa usar resultado['data'] pra exibir).

Se vc quiser pegar soh o dia, por exemplo, vc pode fazer assim:
SELECT DATE_FORMAT(campo_de_data, '%d') AS dia FROM tabela;

E assim vai.
Se vc quiser pegar soh o dia, por exemplo, vc pode fazer assim:
SELECT DATE_FORMAT(campo_de_data, '%m') AS mes FROM tabela;

Etc...

Para mais informações das funções para uso com datas do mysql (podem ser muito úteis) :
http://www.mysql.com..._functions.html

Edição feita por: ffmm2003, 30/01/2004, 00:44.


#5 GifsBrasil

GifsBrasil

    12 Horas

  • Usuários
  • 224 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 30/01/2004, 07:26

com a ajuda de vcs e lendo o manual do MySQL... entendi como funciona. e ja testei no mysql e vi que realmente funciona. soh me falta agora passar pro PHP.

$seleciona = mysql_query("SELECT * FROM tabela WHERE id='10'")or die("Ocorreu um erro na seleção");       
$dados = mysql_fetch_array($seleciona);     
$data = mysql_query("SELECT DATE_FORMAT(data, '%d/%m/%y') AS data FROM tabela");
echo $data;

mas isso retornou "Resource id #4"
como q fica o codigo?
vlw
------------------------
GifsBrasil.com
ICQ 27189411
-------------------------

#6 GifsBrasil

GifsBrasil

    12 Horas

  • Usuários
  • 224 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 30/01/2004, 07:29

esqueci de falar, o esquema do ROBSON ja funcionou, e achei ser o mais facil.
mas queria saber tb como funciona este do SELECT DATE_FORMAT...
------------------------
GifsBrasil.com
ICQ 27189411
-------------------------

#7 rsarracini

rsarracini

    Normal

  • Usuários
  • 90 posts
  • Sexo:Não informado

Posted 30/01/2004, 09:39

esqueci de falar, o esquema do ROBSON ja funcionou, e achei ser o mais facil.
mas queria saber tb como funciona este do SELECT DATE_FORMAT...

Pelo q eu entendi..!! o seu campo data.. apesar de guardar a data do dia..!! ele guarda em um formato de string.....!!

e essas opcoes... do DATE_FORMAT().. so funcionariam em campos com fotmatados DATE...

por isso q a funcao do substr foi mais funcional pra vc...!! pq ela quebra a string...e seleciona so os caracteres q vc quer..!!

$ano = substr($data, 0, 4); // $ano = 1 ao 4 carater
$mes = substr($data, 5, 2); // $mes = 5 ao 7 (5 + 2)
$dia = substr($data, 8, 2); // $dia = 8 ao 10 (8+2)


essas funcoes acho q nao daria muito certo se o seu campo fosse no formato DATE()


alguem ai me corrija se estiver errado..!!

mas foi a conclusao q cheguei !!!

Ricardo
<?php include("cerebro.php");

$iniciando = "iniciando";
$iniciando .= "mas ja desenvolvendo";

echo "Valeu WMonline $iniciando";
?>

Icq : 70496896
msn: rickscbr@hotmail.com

#8 ffmm

ffmm

    Veterano

  • Usuários
  • 1224 posts
  • Sexo:Não informado

Posted 30/01/2004, 11:15

Um pequeno exemplo com a função DATE_FORMAT():
$conn = mysql_connect('localhost', 'root', '');
mysql_select_db('teste', $conn);
$result = mysql_query('SELECT DATE_FORMAT(campo_de_data, \'%m\') AS mes FROM tabela;', $conn);

while($row = mysql_fetch_array($result)){
 echo 'Mês: '.$row['mes'].'<br>';
}

Edição feita por: ffmm2003, 30/01/2004, 11:16.


#9 GifsBrasil

GifsBrasil

    12 Horas

  • Usuários
  • 224 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 30/01/2004, 11:27

rsarracini, eu acho que funciona, mesmo sendo string.

ffmm2003, vlw pelo codigo.
------------------------
GifsBrasil.com
ICQ 27189411
-------------------------

#10 ffmm

ffmm

    Veterano

  • Usuários
  • 1224 posts
  • Sexo:Não informado

Posted 30/01/2004, 11:33

Sim, funciona mesmo sendo string, o importante é estar num formato que o mysql entenda. Pra fazer um teste, abra o mysql (c:/mysql/bin/mysql.exe), e execute uma query assim:
SELECT DATE_FORMAT('2004-12-14', '%m');
Olha o resultado:
+---------------------------------+
| DATE_FORMAT('2004-12-14', '%m') |
+---------------------------------+
| 12                              |
+---------------------------------+
1 row in set (0.03 sec)





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq