2017-01-17 15 views
1

sqlite3で定義されているブール型データ型の列がテキスト型データをどのように格納できるかはわかりません。sqlite3 booleanフィールドにテキスト値が格納されています

私はこれでした:

CREATE TABLE `sometable` (
    `name` text, 
    `bool_field` boolean 
); 

と以下のINSERTクエリを実行しました:

insert into `sometable` values ('name1','something'); 

をし、それがエラーをスローすることなく、魅力のように働きました。私は驚いています - 皆さんは何故かというとなぜですか?私は、sqlite3のブール値フィールドの関連付けが数値1と0であることを知っていますが、ここにテキストがどのように格納されるのでしょうか?

バージョン情報:

Ubuntuのバージョン3.7.0のための "SQLiteのためのDBブラウザ" と呼ばれるクライアントを使用したSQLiteバージョン3.9.2

+0

おかげGurV :) – Dhwanit

+0

あなたが他の文字列値を挿入した場合はどうなります、あなたはテーブルから選択した場合は? – jarlh

+0

私は試しました: select * from sometable; そしてそれは働いた でも試みた: "sometable値( 'name1'、 '何か本当に巨大な)に挿入;"それはすべて同じに動作します – Dhwanit

答えて

-1

のSQLite(Qtのバージョン5.5.1で構築されました)日付および/または時刻を格納するために保管クラスを用意していません。代わりに、SQLiteの組み込みの日付と時刻関数は、TEXT、REAL、またはINTEGERの値として日付と時刻を格納することができます。

TEXTをISO8601文字列( "YYYY-MM-DD HH:MM:SS.SSS ")。 REALジュリアンの曜日番号、4714年11月24日のグリニッジ標準時からの日数。前向きなグレゴリオ暦によると、 INTEGERはUnix Timeとして、1970-01-01 00:00:00 UTC以降の秒数です。 アプリケーションでは、日付と時刻をこれらの形式で保存し、組み込みの日付と時刻関数を使用して形式を自由に変換することができます。コード編集用

Info

+0

私はより多くのブール値に興味がある...なぜsqlite3は、より多くのバイトを割り当て、間違ってストレージクラスでそれを行うことができますbool型フィールドにテキストを格納するINTEGER - バイト(ちょうど1または0を格納するために)boolでも十分ですが、どのようにTEXTにはより高い記憶域制限がありますか? – Dhwanit

+0

帰属なしのテキストのコピーは不正です。 –

関連する問題