Ir para conteúdo

POWERED BY:

Arquivado

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

Mystic

[No Only Sql] Tornando a vida mais simples com timestamp

Recommended Posts

Fala minha gente boa, olha, estou meio sem tempo no momento, por isso vou escrever uma dica rápida okay? Então vamos lá.

 

Esta dica é para quem está no nível iniciante+

 

Os bancos de dados lidam com datas de uma maneira distinta. Pensando na portabilidade, é melhor não apenas abstrair o banco, mas também alguns dados.

 

Se você precisa das datas apenas para informar quando algo aconteceu, apenas um timestamp é necessário.

 

Se você for usar datas em cláusulas, a disposição dos campos é um pouco diferenciada.

 

/* MySql - timestamp dinâmico */

CREATE TABLE `mystic_table`
(
  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,

  /*
  * int
  */
  `timestamp_field` TIMESTAMP DEFAULT 0
); 


/* MySql - Apenas armazenagem */

CREATE TABLE `mystic_table`
(
  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,

  /*
  * String(20)
  */
  `timestamp_field` varchar(20) COLLATE utf8_unicode_ci NOT NULL
); 

 

Você pode armazenar o "timestamp" de várias maneiras, entre elas estão o próprio banco (se suportar), com o php time() e outros.

 

Com o "timestamp" podemos obter as datas que precisamos.

<?php
/*
* Exemplo para PHP+MySql
*/

$dsn = "mysql:host=localhost;dbname=your_db_name";
$username = "XXXXXX";
$password = "YYYYYY";

try {
    $pdo = new PDO($dsn, $username, $password);
}
catch(PDOException $e) {
    die("Could not connect to the database\n");
}

$statement = $pdo->prepare("SELECT * FROM `mystic_table` WHERE 1");
$statement->execute();
$result = $statement->fetch();

$ts = $result['timestamp_field'];

echo "Segundo: ", date( 's', $ts ), "\n";
echo "Minuto: ",  date( 'i', $ts ), "\n";
echo "Hora: ", 	  date( 'h', $ts ), "\n";
echo "Dia: ",	  date( 'd', $ts ), "\n";
echo "Semana: ",  date( 'W', $ts ), "\n";
echo "Mês: ", 	  date( 'm', $ts ), "\n";
echo "Ano: ", 	  date( 'Y', $ts ), "\n";

 

Da para fazer muito mais usando apenas um timestamp.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mm/dd/yyyy

Obrigado pela tentativa de contribuir.

 

 

[Off]

Quero aproveitar para me desculpar com todos por ter "comido uma letra" em "No Only Sql", o correto é "NOT Only Sql".

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.