¿Qué tipo de datos se deben utilizar para la marca de tiempo en DynamoDB?
Soy nuevo en DynamoDB. Deseo crear una tabla que use DeviceID como clave hash, Timestamp como mi clave de rango y algunos datos.
{ DeviceID: 123, Timestamp: "2016-11-11T17:21:07.5272333Z", X: 12, Y: 35 }
En SQL, podemos usar el tipo datetime para Timestamp, pero en DynamoDB no hay ninguno.
Para el tipo de datos elegido, ¿en qué tipo de formato de marca de tiempo debo escribir? Formato ISO (e.g: 2016-11-11T17:21:07.5272333 Z) o epoch time (e. g: 1478943038816)?
-
Necesito buscar en la tabla a través de un rango de tiempo, por ejemplo: 1/1/2015 10: 00: 00am hasta 31/12/2016 11:00: 00pm
1 answers
El tipo de datos de cadena debe usarse para la Fecha o la marca de tiempo.
Puede usar el tipo de datos String para representar una fecha o una marca de tiempo. Una forma de hacer esto es mediante el uso de cadenas ISO 8601, como se muestra en estos ejemplos:
2016-02-15
2015-12-21T17:42:34Z
20150311T122706Z
Tipo de datos DynamoDB para Fecha o Marca de tiempo
Sí, las consultas de rango son compatibles cuando la fecha se almacena como cadena. El ENTRE se puede utilizar en FilterExpression. Tengo los elementos en el resultado usando las siguientes expresiones de filtro.
Expresión del filtro sin tiempo:-
FilterExpression : 'createdate between :val1 and :val2',
ExpressionAttributeValues : {
':hkey' : year_val,
':rkey' : title,
":val1" : "2010-01-01",
":val2" : "2010-12-31"
}
Expresión del filtro con el tiempo:-
FilterExpression : 'createdate between :val1 and :val2',
ExpressionAttributeValues : {
':hkey' : year_val,
':rkey' : title,
":val1" : "2010-01-01T00:00:00",
":val2" : "2010-12-31T00:00:00"
}
Valores de la Base de Datos:-
Formato 1-con zona horaria:
{"Item":{"createdate":{"S":"2010-12-21T17:42:34+00:00"},"title":{"S":"The Big New Movie 2010"},"yearkey":{"N":"2010"},"info":{"M":{"rating":{"N":"0"},"plot":{"S":"Nothing happens at all."}}}}}
Formato 2-sin zona horaria:-
{"Item":{"createdate":{"S":"2010-12-21T17:42:34Z"},"title":{"S":"The Big New Movie 2010"},"yearkey":{"N":"2010"},"info":{"M":{"rating":{"N":"0"},"plot":{"S":"Nothing happens at all."}}}}}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-12 18:18:33