2015-04-03 127 views
0

在我的数据库表中,我有一列timestamp without time zone类型。行包含以下值:BC date在PostgreSQL中意味着什么?

  end_date 
--------------------------- 
timestamp without time zone 

    2774-04-18 22:59:49.88 BC 
    2015-04-07 06:06:21.738 
    2015-04-02 12:37:15.161 
    2015-03-26 15:58:45.864 
    2015-04-09 15:34:41.399 

只要BC意味着在基督之前。如何将BC转换为非BC时间戳?我很困惑,end_date > now()失败2774-04-18 22:59:49.88 BC。为什么?

+0

明显的答复,添加2774年,它将是公元? – Wolph 2015-04-03 15:07:55

+1

由于end_date实际上是-4789年,它显然会比'now()'小。 – Wolph 2015-04-03 15:09:27

+0

@Wolph SO 2000-11-11 BC是真正的-2000? – user3663882 2015-04-03 15:11:19

回答

2

这意味着基督之前 - 在PostgreSQL中timestamp的限制是:

  • 低:BC 4713
  • 高:294276 AD

date型进位进一步进入未来 - 未来的证据? see here for date types

+1

294276 AD(时间戳)或5874897 AD(日期)或178000000年(间隔) - 我相信我会很容易地睡觉,不用任何Y2K或[Y2038](http://en.wikipedia.org/wiki/Year_2038_problem ) 问题。 +1。 – StuartLC 2015-04-03 17:28:50