I just tested sqlite and created a table.
$sqlite3 plop.db
sqlite> CREATE TABLE t (d DATE);
sqlite> INSERT INTO t (d) VALUES (\'Hello\');
sqlite>
SQLite DATE type has NUMERIC affinity. Despite its name, the NUMERIC affinity allows storing data of all five storage classes (NULL, INTEGER, REAL, TEXT, and BLOB). A column that has NUMERIC affinity (e.g. a DATE column) tries to convert any text data to INTEGER and REAL first. If this conversion is possible, it stores data using INTEGER or REAL storage classes respectively. If conversion is not possible, the data is stored using TEXT storage class. And this is exactly what happened in your case. See http://www.sqlite.org/datatype3.html#affinity