Jump to content
n0TTT_

Ver data

Recommended Posts

I-NOZex
$data = time();
/* ... */
$sql = "INSERT INTO `utilizadores` VALUES ($user,$password,$data);
mysql_query($sql);


B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

Share this post


Link to post
Share on other sites
HappyHippyHippo

CREATE TABLE tabela (
 -- ...
 ts_creation TIMESTAMP DEFAULT CURRENT_TIMESTAMP
 ts_update   TIMESTAMP
 -- ...
);

com estes campos deixas de necessitar de criar código para esse tipo de acção.

o campo ts_creation terá a data/hora de criação do registo e o campo ts_update terá sempre a data/hora da última actualização do registo na base de dados.

conclusão : a solução nem sequer é PHP ...

Edited by HappyHippyHippo
  • Vote 2

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
n0TTT_

CREATE TABLE tabela (
 -- ...
 ts_creation TIMESTAMP DEFAULT CURRENT_TIMESTAMP
 ts_update   TIMESTAMP
 -- ...
);

com estes campos deixas de necessitar de criar código para esse tipo de acção.

o campo ts_creation terá a data/hora de criação do registo e o campo ts_update terá sempre a data/hora da última actualização do registo na base de dados.

conclusão : a solução nem sequer é PHP ...

Não deu fica a data e a hora mas com '0'

Share this post


Link to post
Share on other sites
HappyHippyHippo

Não deu fica a data e a hora mas com '0'

como não dá ?

o que estás a fazer ?

que código tens ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
n0TTT_

inseri as dua rows a minha tabela de members e quando se regista a data é renchida com zeros em vez de exemplo : 2013-10-05 20:30

Share this post


Link to post
Share on other sites
HappyHippyHippo

epa ... falar com quem não quer falar é como não falar ... vou passar a ignorar este tópico.

sem informação é impossivel fazer alguma coisa ...


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Kami was taken

O que eu acho que ele quer dizer é um campo DATE...

Para inserires a data de registo em que o campo na base de dados é DATE então:

$data = date("Y-m-d");
$sql = mysql_query("INSERT INTO tabela (nome, email, data) VALUES('$nome', '$email', '$data')");

OU

se o campo for do tipo TIMESTAMP, em vez de teres date("Y-m-d"); poes time();

é isso?


L, did you know Shinigami only eat apples?

Share this post


Link to post
Share on other sites
I-NOZex

timestramp é a forma mais segura e flexivel, pois pode obter tanto a data como a hora...

e como o happyhippo fez defacto, nem precisa de php, um campo timestramp é automatico...


B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

Share this post


Link to post
Share on other sites
Devexz

CREATE TABLE tabela (
 -- ...
 ts_creation TIMESTAMP DEFAULT CURRENT_TIMESTAMP
 ts_update   TIMESTAMP
 -- ...
);

com estes campos deixas de necessitar de criar código para esse tipo de acção.

o campo ts_creation terá a data/hora de criação do registo e o campo ts_update terá sempre a data/hora da última actualização do registo na base de dados.

conclusão : a solução nem sequer é PHP ...

aprendi uma coisa nova e interessante! :)

Edit:

Estou a tentar criar esses dois campos na minha table e dá este erro:

SQL Error (1293): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

CII4fp4.png

Edited by Devexz

Contador de calorias: caloriaspordia.com

Share this post


Link to post
Share on other sites
I-NOZex

so num campo é que tas a meter CURRENT_TIMESTRAMP como default?

exprimenta definir 0 para o outro campo...


B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

Share this post


Link to post
Share on other sites
I-NOZex

uhm :\ ele nao parece aceitar ter 2 campos com default de CURRENT_TIME

provavelmente a data de atualizaçao vai ter de ser com php...

a menos que ai o @happyHippo saiba como dar a volta com o mysql...


B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

Share this post


Link to post
Share on other sites
HappyHippyHippo

uhm :\ ele nao parece aceitar ter 2 campos com default de CURRENT_TIME

provavelmente a data de atualizaçao vai ter de ser com php...

a menos que ai o @happyHippo saiba como dar a volta com o mysql...

pois ... esquecime que o MySQL tem essa estúpida limitação que somente um campo poderá ter como no create e on update o CURRENT_TIMESTAMP

não faz muito sentido, mas é com o que temos de viver.

sem entrar em processos a serem executados na criação de registos da tabela (solução 100% MySQL), o que é possivel é alterar o default do timestamp de criação para zero (0) e inserir "à mão":

CREATE TABLE tabela (
 -- ...
 ts_creation TIMESTAMP DEFAULT 0
 ts_update   TIMESTAMP -- sem nada indica "on create" e "on update" como CURRENT_TIMESTAMP
 -- ...
);

$data = time();

$sql = "INSERT
         INTO `utilizadores
            (
             -- ...
             ts_creation,
             -- ...
            )
       VALUES
            (
             -- ...
             '".date("Y-m-d H:i:s)."', -- não esquecer dos 's para indicar que é uma string
             -- ...
            );";

Edited by HappyHippyHippo
  • Vote 1

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
I-NOZex

$data = time();

$sql = "INSERT
	  INTO `utilizadores
		 (
		  -- ...
		  ts_creation,
		  -- ...
		 )
	VALUES
		 (
		  -- ...
		  '".date("Y-m-d H:i:s")."', -- não esquecer dos 's para indicar que é uma string
		  -- ...
		 );";

Corrigi o codigo ;) (aspas)


B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

Share this post


Link to post
Share on other sites
Devexz

pois ... esquecime que o MySQL tem essa estúpida limitação que somente um campo poderá ter como no create e on update o CURRENT_TIMESTAMP

não faz muito sentido, mas é com o que temos de viver.

sem entrar em processos a serem executados na criação de registos da tabela (solução 100% MySQL), o que é possivel é alterar o default do timestamp de criação para zero (0) e inserir "à mão":

CREATE TABLE tabela (
 -- ...
 ts_creation TIMESTAMP DEFAULT 0
 ts_update   TIMESTAMP -- sem nada indica "on create" e "on update" como CURRENT_TIMESTAMP
 -- ...
);

$data = time();

$sql = "INSERT
	  INTO `utilizadores
		 (
		  -- ...
		  ts_creation,
		  -- ...
		 )
	VALUES
		 (
		  -- ...
		  '".date("Y-m-d H:i:s)."', -- não esquecer dos 's para indicar que é uma string
		  -- ...
		 );";

pois... vi também uma resposta semelhante à cerca dessa limitação no stack.

mas obrigado pelo esclarecimento ;)


Contador de calorias: caloriaspordia.com

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.