在 arangodb 中存储日期的最佳方式
The best way to store date in arangodb
我需要在 arangodb 中存储资源创建日期。此外,我需要按创建日期过滤资源:
FOR doc in Docs
FILTER doc.created < @some_date
RETURN doc
最好的方法是什么?
可能的解决方案:
{
// one
created: "<iso8601-date>", // Persistent index, use DATE_TIMESTAMP()
// two
created: "<timestamp-str>", // Persistent index, use TO_NUMBER
// three
created: <timestamp-int>, // Persistent index
}
刚找到这个 documentation。简而言之:日期可以存储为 iso8601 格式的字符串,也可以存储为数字时间戳。所有比较操作都将正确有效地工作。
我建议您以 Unix 纪元秒格式存储日期,因为这有助于日期范围查询并确保您的客户可以可靠地将日期格式化为可用格式。
当日期只是一个数字时,很容易进行跨范围的时间查询,因为 1 小时就是 3600 秒。
如果您需要更多粒度,那么将日期存储为 Unix 纪元毫秒也有帮助。
您可以使用这种格式存储早于 1/1/1970 的日期,它们将只是负整数。
我需要在 arangodb 中存储资源创建日期。此外,我需要按创建日期过滤资源:
FOR doc in Docs
FILTER doc.created < @some_date
RETURN doc
最好的方法是什么?
可能的解决方案:
{
// one
created: "<iso8601-date>", // Persistent index, use DATE_TIMESTAMP()
// two
created: "<timestamp-str>", // Persistent index, use TO_NUMBER
// three
created: <timestamp-int>, // Persistent index
}
刚找到这个 documentation。简而言之:日期可以存储为 iso8601 格式的字符串,也可以存储为数字时间戳。所有比较操作都将正确有效地工作。
我建议您以 Unix 纪元秒格式存储日期,因为这有助于日期范围查询并确保您的客户可以可靠地将日期格式化为可用格式。
当日期只是一个数字时,很容易进行跨范围的时间查询,因为 1 小时就是 3600 秒。
如果您需要更多粒度,那么将日期存储为 Unix 纪元毫秒也有帮助。
您可以使用这种格式存储早于 1/1/1970 的日期,它们将只是负整数。