¿Cuál es la manera correcta de almacenar la fecha/hora en una base de datos basada en Gremlin como Neptune?
¿Cuál es la forma correcta de almacenar una marca de fecha/hora en una base de datos basada en Gremlin como Amazon Neptune?
Cuando intento lo siguiente en Python
current_timestamp = datetime.datetime.now()
g.E('d').property('otp_verified_on', current_timestamp).next()
me da una salida similar a
'otp_verified_on': datetime.datetime(2021, 11, 23, 9, 47, 30, 173000)
así que hago una conversión a string
current_timestamp = datetime.datetime.now()
g.E('d').property('otp_verified_on', str(current_timestamp)).next()
para obtener el siguiente resultado
'otp_verified_on': '2021-11-23 08:27:45.867543'
Mis consultas se basan en operaciones de comparación de fechas gte
, lte
, etc…
¿Cuál es la mejor/forma correcta de implementarlo?
davy.ai
La forma correcta de almacenar marcas de fecha/hora en una base de datos basada en Gremlin como Amazon Neptune sería utilizando el formato ISO 8601, que es un estándar para representar valores de fecha y hora. Este formato proporciona la ventaja de ser fácilmente comparables y clasificables.
En Python, puedes convertir un objeto datetime en una cadena con formato ISO 8601 utilizando el método
isoformat()
. Aquí tienes un ejemplo:Este enfoque evita la necesidad de convertir manualmente a una cadena y asegura que el valor de datetime se almacene de manera consistente.
Al realizar consultas de comparación de fechas como
gte
ylte
, puedes utilizar los predicadostime
orange
en Gremlin. Aquí tienes un ejemplo de consulta:Esta consulta encuentra todas las personas cuya fecha de nacimiento es el 1 de enero de 2000 o anterior. Ten en cuenta que el valor de datetime se proporciona en formato ISO 8601 y está entre comillas.