Newsgroup: it.comp.www.php
Titolo: [xpost] MYSQL + phpmyadmin: UNIX_TIMESTAMP in un campo?

ciao a tutti,
sto impazzendo nel cercare di impostare un valore di default
(UNIX_TIMESTAMP) per un campo (miadata) di una tabella di un db mysql 4.
L'unico risultato che ho ottenuto e' stato facendo cosi':
- creo il campo miadata con phpmyadmin e lo imposto come INT(10);
- inserisco un record;
- modifico il record con phpmyadmin e seleziono la funzione
(UNIX_TIMESTAMP) per il campo 'miadata'.
A questo punto il campo prende il valore giusto.
Logicamente vorrei fare tutto questo da web, senza maneggiare il db ogni
volta che si inserisce un nuovo record.
Come faccio ad impostare il default del campo 'miadata' in modo che
contenga il valore UNIX_TIMESTAMP del momento relativo alla
creazione/modifica del record?
C'ho provato in mille modi, ma senza risultato. Se imposto il campo come
TIMESTAMP mi inserisce un numero che NON assomiglia a UNIX_TIMESTAMP e
nemmeno ad una data yyyymmddhhmmss.
E' parecchio che goooooglo, ma nisba, trovo solo pagine di manuali mysql in
cui mi si inceppa il cervello.
Non c'e' nessuno che mi puo' dare una dritta?
Grazie in anticipo ;).
tony

 tony
I don't speak Italian -  thank goodness for google translate.
mysql> create table abcd (a int(10), b int);
Query OK, 0 rows affected (0.08 sec)
mysql> insert into abcd values (unix_timestamp(),123);
Query OK, 1 row affected (0.05 sec)
mysql> select * from abcd;
+------------+------+
| a          | b    |
+------------+------+
| 1311968935 |  123 |
+------------+------+
1 row in set (0.02 sec)
mysql> select from_unixtime(a),b from abcd;
+---------------------+------+
| from_unixtime(a)    | b    |
+---------------------+------+
| 2011-07-29 15:48:55 |  123 |
+---------------------+------+
1 row in set (0.00 sec)
mysql>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mysql> create table abcde (mydir timestamp default now(),  somedir
varchar(200));
Query OK, 0 rows affected (0.06 sec)
mysql>
mysql>
mysql> insert into abcde (somedir) values ('/somedir/path/file');
Query OK, 1 row affected (0.13 sec)
mysql>
mysql> select * from abcde
    -> ;
+---------------------+--------------------+
| mydir               | somedir            |
+---------------------+--------------------+
| 2011-07-29 16:00:53 | /somedir/path/file |
+---------------------+--------------------+
1 row in set (0.00 sec)
mysql> select unix_timestamp(mydir),somedir from abcde;
+-----------------------+--------------------+
| unix_timestamp(mydir) | somedir            |
+-----------------------+--------------------+
|            1311969653 | /somedir/path/file |
+-----------------------+--------------------+
1 row in set (0.00 sec)
mysql>

Thanks onedbguru.
I really appreciate your help.
Since I use the dreamweaver extensions from interakt (and now adobe) to
build site back-ends I need to insert the correct timestamp using those
extensions.
Actually I found the solution:
- I set the db field containing the timestamp as INT(10)
- when I insert a record in the db using the interakt extension I set the
default value for my field to the php function:  TIME().
That worked perfectly and I get timestamp value in the field.
Thanks again.
tony