SQLite Forum

Is there a non-trigger way to format data on INSERT/UPDATE?
Sure, as long as you control the INSERT statement, in which case this will do:

INSERT INTO t(a, b) VALUES (111, replace(lower(:myparam),'-',':'));

If however you don't, but want to check/adjust an inserted value AFTER the INSERT happened and without running a next query, well, the one and only SQL mechanism for that is a Trigger, so if you won't allow that, then no - you cannot do so.