SQLite Type Affinity
What I learned:
- SQLite has only four column types: 
INTEGER,REAL,TEXT,BLOB - SQLite columns are dynamically typed
 - Date and Time is stored either as TEXT (ISO8601 strings), REAL (number of days) or INTEGER (unix timestamp)1
 - Each column has a preferred type1
 
A column with NUMERIC affinity may contain values using all five storage classes. When text data is inserted into a NUMERIC column, the storage class of the text is converted to INTEGER or REAL (in order of preference) if such conversion is lossless and reversible.
- This is a valid SQL in SQLite 2:
 
CREATE TABLE foo (a smallint);
INSERT INTO foo (a) VALUES (3);
INSERT INTO foo (a) VALUES (3.14);
INSERT INTO foo (a) VALUES ('pi');