2014-02-06 15 views
1

我在使用合金的鈦工作室中創建了一些模型。我希望某些列是dateboolean,但在運行應用程序時它不接受它。爲什麼Titanium不接受日期作爲SQLite中的列類型?

根據the documentation

以下數據類型被接受並映射到適當的 SQLite的類型:字符串,VARCHAR,INT,TINYINT,SMALLINT BIGINT,雙, 浮子,十進制,號碼,日期,日期時間和布爾值。

但是當我運行我的應用程序,我在控制檯中這條消息:

[WARN] : "date" is not a valid sqlite field, using TEXT instead 
[WARN] : "date" is not a valid sqlite field, using TEXT instead 
[WARN] : "boolean" is not a valid sqlite field, using INTEGER instead 
[WARN] : "boolean" is not a valid sqlite field, using INTEGER instead 

也許我的設置我的模型正確了?這裏是我的代碼:

exports.definition = { 
    config: { 
     columns: { 
       "availability_end": "date", 
       "availability_start": "date",   
       "deleted": "boolean", 
       "duration": "integer", 
       "title": "text",   
      }, 
     adapter: { 
      type: "sql", 
      collection_name: "videos" 
      } 
    }, 
/* the rest of the model definition... */ 

回答

3

因爲它不是一個有效的SQLite數據類型。 http://www.sqlite.org/datatype3.html

1.2日期和時間數據類型

SQLite沒有存儲類存儲日期和/或時間預留。相反,SQLite的內置日期和時間函數能夠將日期和時間存儲爲TEXT,REAL或INTEGER值:

TEXT作爲ISO8601字符串(「YYYY-MM-DD HH:MM:SS.SSS 「)。 真實的Julian日數,自中午4714年11月24日格林威治中午以來的天數。根據預測的公曆。 INTEGER as Unix Time,自1970-01-01 00:00:00 UTC以來的秒數。 應用程序可以選擇以任何這些格式存儲日期和時間,並使用內置的日期和時間函數在格式間自由轉換。

也許文檔只是告訴你,它會自動正確地映射它。也許它也會自動爲你管理日期操作。

相關問題