代码之家  ›  专栏  ›  技术社区  ›  Václav

Postgresql日期类型在公元0年有一个世纪的空白

  •  0
  • Václav  · 技术社区  · 5 年前

    我正在使用PostgreSQL,在处理基督诞生前后的日期时,突然遇到了一个时间点为0的问题。

    update mytable 
       set mydate='0000-09-01' 
    where id=1; 
    

    给我

    错误:日期/时间字段值超出范围:“0000-09-01”`

    而两者

    update mytable 
      set mydate='0001-09-01' 
    where id=1;
    

    update mytable 
       set mydate='0001-09-01 BC' 
    where id=1;
    

    好好工作。

    也就是说,问题是我的数据库中不能存储0个广告日期,这使得我的时间线中的一个世纪无效。有人遇到过同样的问题吗?这是一个将在下一个PostgreSQL版本中修复的错误吗?有什么解决方法(除了将日期存储为字符串)吗?

    0 回复  |  直到 5 年前