Вставка поплавка в DynamoDB с помощью PHP
Я нахожусь в процессе перехода от MongoDB к DynamoDB, и одной из проблем, для которых я до сих пор не нашел решения, является вставка поплавков.
Я пытаюсь сделать что-то вроде этого:
list($usec, $sec) = explode(" ", microtime());
$timestamp = (float)$usec + (float)$sec; //1379914632.0291
$array_to_insert = array('system_insert_time' => array('N' => $timestamp));
Я получаю исключение, как это:
Validation errors: [Item][system_insert_time][N] must be of type string
Поле в базе данных определяется как число. Это работает нормально, если я пытаюсь вставить целые числа. Но мне нужно больше точности, чем секунды. Вставка в виде строки не работает, потому что я хочу иметь возможность получать записи базы данных больше, чем определенная временная метка.
Любая помощь очень ценится! Благодарю.
2 ответа
Похоже, это работает, если я использую number_format() на отметке времени перед вставкой.
Вы уже нашли решение, так что я просто хотел бы добавить, что приведение типов к строке будет другим...
$array_to_insert = array('system_insert_time' => array('N' => (string)$timestamp));
# ^------^