我应该将DateTimes作为Long(Ticks)存储在数据库中吗?

IAb*_*act 6 database datetime

通过将DateTime值保存为long替代,可以使生活更轻松吗?使用null DateTime值时似乎总是存在问题,无论是存储还是检索 - null DateTimes,无效的DateTimes等总是很难处理.

简单地使用long数据类型是否可取,因为您始终可以从刻度线创建DateTime?

编辑:我使用SqlServer和MySql.SqlDateTime是.net的派生DateTime.有效DateTime的所有3个平台之间存在差异.你如何处理这些差异?

cus*_*ar9 7

我想这取决于个人偏好.我总是使用日期时间类型,并没有任何麻烦.

如果你通过语义将它们存储为long,则它们不再是日期.如果您曾经想要进行查询以选择在星期五添加的所有帐户(比如说),那么您必须跳过几个环节才能解决这个问题.

  • 燃烧死亡和破坏的箍. (6认同)

vcs*_*nes 5

我个人想不出任何突出的原因,数据库支持 DateTime 本身,并将它们存储得太久,您最终可能会中伤自己。假设您需要能够运行查询“获取我在凌晨 3 点到下午 6 点之间的所有行” - 如果将它们存储为刻度,则需要在数据库中转换回 DateTime。

将它们存储为刻度可能会妨碍许多其他操作,例如分组、排序、过滤等。

如果数据库中的 DateTimes 有细微差别,例如 TimeZone,强烈建议将 DateTime 规范化为特定时区,例如 UTC。团队在数据库中使用 DateTime 面临的许多问题通常是由于不卫生的输入造成的,例如未对 TimeZone 进行规范化。将其存储为刻度仍然会存在相同的问题。