我需要在 sqlite 数据库中存储带有日历日期(只是一天,没有时间)的项目。在列中表示日期的最佳方式是什么?朱利安天和 unix 秒是合理的选择。如果我去的单位不是几天,应该是什么时间?
更新:我知道 ISO8601 并实际使用它将日期存储为原型(prototype)的 YYYY-MM-DD 格式的字符串。但是对于各种算术,我必须在内部将其转换为某个数字,所以我更愿意存储一个数字并转换为字符串进行显示。这个数字应该是什么单位,来源是什么,如果单位比天更精确,应该使用什么时间?
最佳答案
如果您希望将日期交给外部工具或库,您应该使用它期望的任何格式。 Unix 时间似乎是数字时计的通用语,因此如果外部环境不适合您,它是一个很好的默认设置。
ISO 8601可能感兴趣。
编辑:
But for various arithmetic I have to convert it to some number internally, so I'd prefer to store a number and just convert to string for display.
啊,有道理。如果您的环境(.NET?Python?C++?)有时间处理工具,最好使用它们的 native 单元和纪元。没有理由重写所有这些日期操作函数。他们比看起来更棘手。否则,我会使用本地(公历?)日历中的天数,因为您的应用程序处于合理的时期。大方一点,当您突然需要处理比您预期更早的日期时,您不希望出现反向 Y2K 错误。
一天中的时间完全取决于口味。午夜似乎是最干净的选择(小时、分钟、秒字段中的所有零),但由于它永远不会到达用户那里,因此没有实际意义。事实上,这将是一个复活节彩蛋的好地方。
关于sqlite - 在 sqlite 数据库中存储日历日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/121408/