【问题标题】:How do you implement databases about history in sql server?你如何在sql server中实现关于历史的数据库?
【发布时间】:2018-11-29 03:33:42
【问题描述】:

我正在尝试在 SQL Server 中模拟一些古老的历史。我必须使用数字来指代地球上第一个生命形成等古代日期吗?

【问题讨论】:

    标签: tsql date datetime


    【解决方案1】:

    因为古代历史的日期值通常用“大约公元前 40000 到 30000 年”之类的东西给出这样的东西最好有一个开始和结束日期。此外,最好将年月日等单列用作整数,以便能够表示像“-40000”这样的年值。

    【讨论】:

    • 我的意思不是指使用dateadd的溢出问题。目前,我使用 nvarchars。
    【解决方案2】:

    好吧,你做 Sql Server 开发人员为 DateTime 所做的事情 - 你选择一个 Epoch,并存储一个数字来指定与那个 Epoch 的距离。

    DateTime 的 Sql Server Epoch 是您在选择 SELECT CAST(0 AS DateTime) 时获得的日期 - 返回 1900 年 1 月 1 日午夜 - 1900-01-1T00:00:00

    由于您正在处理史前时代,您可能希望选择 0001-01-01 作为您的 Epoch,只是为了简化计算。
    此外,史前日期通常是估计范围,因此您可能希望保留几列 - 一列用于范围开始,一列用于范围结束。

    我不建议在任何情况下将日期保留为字符串,这只会给您带来麻烦。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-24
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多