Вставка поплавка в 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));
#                                                             ^------^
Другие вопросы по тегам