System.Data.SQLite DataType

虽然上篇文章中提到 SQLite 是弱类型数据库, 但对于 System.Data.SQLite 来说, 为了更好的与 Ado.NET 2.0 互操作, 作者仍然建议在创建表的时候就指定类型, 以方便程序进行类型转换, 下面是类型关键字列表:

  • DbType.Boolean BIT YESNO LOGICAL BOOL
  • DbType.Byte TINYINT
  • DbType.Int16 SMALLINT
  • DbType.Int32 INT
  • DbType.Int64 INTEGER BIGINT COUNTER AUTOINCREMENT IDENTITY LONG
  • DbType.Single REAL
  • DbType.Double DOUBLE FLOAT
  • DbType.Decimal NUMERIC DECIMAL MONEY CURRENCY
  • DbType.String CHAR NCHAR VARCHAR NVARCHAR TEXT NTEXT LONGTEXT LONGCHAR LONGVARCHAR STRING MEMO NOTE
  • DbType.Binary BLOB BINARY VARBINARY IMAGE GENERAL OLEOBJECT
  • DbType.Guid GUID UNIQUEIDENTIFIER
  • DbType.DateTime TIME DATE DATETIME SMALLDATE SMALLDATETIME TIMESTAMP

有两点需要注意:

  • SQLite 主键默认的 INTEGER 类型对应的是 Int64, 而 INT 对应的是 Int32.
  • 日期和时间类型最终存储为字符串, 所以格式必须符合ISO8601标准:
    yyyy-MM-dd HH:mm:ss
    yyyyMMddHHmmss
    yyyyMMddTHHmmssfffffff
    yyyy-MM-dd
    yy-MM-dd
    yyyyMMdd
    HH:mm:ss
    THHmmss