SQLite3のドキュメントを参照しても、小数点以下の切り捨てを行うTRUNC関数はありませんでした。
何故か、sqlite3のINTEGER型へのキャストでは、暗黙的に小数点以下を切り捨てされます。
確認用コード
sqlite3_cast_to_int.sql
SELECT
CAST( 0.999999999 AS int ) AS to_int
;
他のデータベースマネジメントシステムとの差異
PostgreSQL等多くのRDBでは、INTEGER型へのキャストでは暗黙的に四捨五入が行われます。sqlite3が特別なような気もします。
異なるDBMSでSQLを書く際には、キャストの際の暗黙的な処理についても差異があることに気を配りたいものです。