| Integer types |
INTEGER becomes Long Integer, SMALLINT Integer, TINYINT Byte. BIGINT, INT8, and unsigned types become Decimal with no scale. |
Every number keeps its range. A value too large for its Long Integer field is reported, not cut. |
NUMERIC(p,s), DECIMAL(p,s), floating point |
A declared precision becomes Decimal(p,s), up to Access's 28 digits. REAL, FLOAT, DOUBLE, and NUMERIC without a precision become Double. |
Declare a precision in SQLite, or set Decimal in the mapping, where values must stay exact. |
| Text types |
VARCHAR(n) and CHAR(n) up to 255 become Short Text(n). Longer, unsized, TEXT, and CLOB columns become Long Text. |
SQLite never limited text length, so an unsized column gets Long Text rather than a guessed width. |
| Dates and times |
DATE, DATETIME, TIMESTAMP, and TIME become Date/Time. A time alone is stored on 30 December 1899, Access's day zero. |
A value with Z or an offset such as +02:00 is stored as its UTC time. Dates kept in plain text or integer columns are not detected. |
BOOLEAN, GUID / UUID, BLOB |
Yes/No, Replication ID, and OLE Object respectively. |
A GUID is accepted as 36-character text, 32 hex digits, or a 16-byte blob. Anything else in that column is reported. |
| Keys and defaults |
INTEGER PRIMARY KEY AUTOINCREMENT becomes AutoNumber; a plain INTEGER PRIMARY KEY stays a Long Integer key. CURRENT_TIMESTAMP becomes Now(), CURRENT_DATE becomes Date(). |
Composite keys, indexes, and foreign keys are created. A default built from another expression is dropped and named in the log. |