2015-11-02 3 views
0

У меня есть метка времени, предоставленная JSON. Я хочу сделать это в моей базе данных (MySQL). Существует строка под названием «эпоха», которая является типом даты.MySQL - сохранить временную метку JSON

Печать метки времени по следующему коду приводит к правильному результату.

$epoch = date('d.m.Y H:i:s', $this->date); 

echo "Timestamp: " . $this->date . " - Date: " . $epoch . "\n"; 

Отметка: 1446746400 - Дата: 05.11.2015 19:00:00

$sql = "REPLACE INTO Forecast (epoch) VALUES ('" . $this->date . "')"; 

Результат является 0000-00-00 00:00:00 Дата валютирования в моей БД ...

Может ли кто-нибудь объяснить мне, как правильно передать эту метку времени в MySQL?

+0

старт с использованием даты MySQL/формат времени: http://dev.mysql.com/doc/refman/5.7/en/datetime.html. нет такой вещи, как «временная метка json». json не имеет реальных типов данных, кроме примитивных numerica/string/array/objects. –

+0

есть тип данных TIMESTAMP в mySQL, каков тип данных столбца эпохи? SELECT имя_столбца, data_type FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Прогноз' –

ответ

0

Формат datetime в mysql не является временной меткой, как в php. Вы должны хранить строку, которая выглядит примерно вашей $epoch строки:

date('Y-m-d H:i:s', $this->date) 

будет работать нормально.

0

MySQL принимает только дату в формате ГГГГ-ММ-ДД. Все, кроме этого формата, будет просто отброшено и в результате будет вставлено значение по умолчанию для поля. Поэтому, чтобы сохранить правильную дату, вам необходимо преобразовать ее в формат даты и времени Mysql. Для этого вы можете использовать Mysql date_format() или функцию даты php.

1

Try с этим:

$epoch_date = $epoch->format('Y-m-d H:i:s'); 
$query = "update forecast set epoch = '$epoch_date'"; 
Смежные вопросы