代码之家  ›  专栏  ›  技术社区  ›  SF.

sqlite中的负日期

  •  0
  • SF.  · 技术社区  · 14 年前

    新编译的sqlite显示了与日期/时间函数相关的奇怪行为。你知道发生了什么事,怎么修理吗?

        $ date
        Mon Mar  8 14:52:11 CET 2010
    
        $ ./sqlite3 TEST0
        SQLite version 3.6.22
        Enter ".help" for instructions
        Enter SQL statements terminated with a ";"
        sqlite> SELECT date('now');
        -4713-11-24
    
        sqlite> SELECT strftime('%s','now');
        -210866760000
    
        sqlite> select datetime( -210866760000 , 'unixepoch');
        1970-01-01 00:00:00
    

    ARMLinux的版本是sqlite 3_6_22。我不确定…也许是一些交叉编译问题?

    2 回复  |  直到 14 年前
        1
  •  1
  •   dan04    14 年前

    看起来sqlite由于某种原因无法访问时钟,所以它假定日期为零。它使用 Julian Day 对于它的内部日期重新存储,所以这转换为-4713-11-24 12:00:00。

        2
  •  0
  •   SF.    14 年前

    …确保根据您的特定ARM模型调整编译。( -mtune=arm920t )而不仅仅是通用的Armel、Arm9等。否则,程序通常工作正常,但无法访问各种功能,如时钟…