what i think would be best, if the all the dafult values would be <null>. Empty string '' doesn't mean anything for dateTime or integer columns. So default value for these types should DEFINETELY be <null>.
Another aspect in favour of this solution is that you could specify default value for Null values on creation of table. For Example
CREATE TABLE 'Category'
("CategoryId" INTEGER PRIMARY KEY NOT NULL ,
'Name' varchar(20) NOT NULL DEFAULT '',
'ParentCategoryId' INTEGER NOT NULL DEFAULT '15')
This way user could decide individually for each column the default behavior. So this way whenever the value is entered as <null> sqlite would provide default values, i.e. empty string '' for 'Name' column and 15 for 'ParentCategoryId'.
This argument actually suggests that by default all values to be suggested as <null>. Then if user wants an empty string instead, he would delete '<null>' making the value empty string.
This will also be in line to default database bahavior, as sql assumes the value to be null if it is not explicitly entered.
So if you do insert command and only supply values for some of the columns, then the rest would get either null or default values suggested on creation of table.