timestamp проверка

dump на таблицата с малко meta-data. Направи export c PhpMyAdmin. date_expire да не е text/varchar?
 
scinetic каза:
Използвай TIMESTAMP тип данни, те не са случайно измислени, a не int(12). Иначе щеше да има само int u varchar :)
За да правиш сравнение между (сега) CURRENT_TIMESTAMP и записа в таблицата, те трябва да са от един и същ тип данни, т.е. пример:
mysql> select cast(current_timestamp as signed) as bla;
+----------------+
| bla |
+----------------+
| 20130314192855 |
+----------------+
1 row in set (0.00 sec)
 
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(12) NOT NULL' at line 1
 
[sql]ALTER TABLE subscribtions MODIFY date_expire TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;[/sql]Edit:Същото и за date_activate
 
То си е дата, изписва се като стринг, но типа данни му е timestamp. Справка:
[sql]SHOW CREATE TABLE subscribtions;[/sql] :D

mysql> SELECT CURRENT_TIMESTAMP;
+---------------------+
| CURRENT_TIMESTAMP |
+---------------------+
| 2013-03-14 21:13:45 |
+---------------------+
1 row in set (0.00 sec)
 
#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Като се опитвам и date_activate да го направя така..
 
Тогава дай за date_expire DEFAULT 0

[sql]ALTER TABLE subscribtions MODIFY date_expire TIMESTAMP NOT NULL DEFAULT 0;
ALTER TABLE subscribtions MODIFY date_activate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
[/sql]
 
Готово сега и 2-те са така, обаче като е дата ми показва 0000-00-00 00:00:00
на всеки timestamp и като активирам услуга пак 0000-00-00 00:00:00 и на 2-те :X
 

Back
Горе