TIMESTAMP не сохраняется

Anton108

Новичок
TIMESTAMP не сохраняется

Получаю время через PHP функцией time(), сохраняю ее в таблицу MySQL (4.0.17) в поле типа 'timestamp', а в таблицу записываются одни нули! Меняю тип поля на 'bigint' - все ОК, нормально сохраняет. В чем дело?
 
TIMESTAMP в Mysql означает не то, что в юникс.
то, что в юникс, в Mysql пишется в поле типа int
 
Ага, значит MySQL поле TIMESTAMP пишет в формате "YYYYMMDDHHMMSS". А как мне выдирать дату? Выдирать ее в строку, а затем "руками" выдирать год, месяц и день?
Если это так, то я лучше буду абсолютное время получаемое time() хранить в bigint.
А как вы храните дату?
 
Originally posted by Фанат
Anton108
а bigint-то зачем?
Да я не знал, какова длина INT, думал как в C/C++ - 2 байта, решил поставить побольше :)
Сейчас почитал документацию, поставил INT. Дату сделал через абсолютное время - имхо гораздо проще и наглядней, чем возится с бесконечными функциями MySQL.

Кстати, ты не знаешь где взять справочник по MySQL версии 4.0.17 или около того (типа старые)? На оф. сайте лежит только 5.0.3 альфа.
 
имхо гораздо проще и наглядней,
ну, это пока над датами в запросе вычисления производить не понадобится.
Лично я бы не стал утверждать, что "гораздо". Лично я не могу склониться ни к одному из вариантов и использую и тот и другой.
абсолютное время
не стоит называть юниксовое соглашение о подсчете в достаточно коротенькую, в общем-то, эпоху, абсолютным временем :-)
Кстати, ты не знаешь где взять справочник по MySQL версии 4.0.17
не знаю.
Мне вполне хватает официального
 
Да я не знал, какова длина INT, думал как в C/C++ - 2 байта
где это вы видели современную машину, где int = 2 байтам?
int в gcc/icc/msvc на wintel/lamd :) = 4 байтам, а time_t (который и есть unix-timestamp) вообще определен как long, и равен либо 4, либо 8 байтам
не знаешь где взять справочник по MySQL версии 4.0.17
в мануале всегда написано с какой версии, какая возможность появилась. Потому документация на самую последнюю версию - самое лучшее, что можно придумать
 
Сверху