2011年7月4日月曜日

SQLite3

久々です。

筆者は現在、Android関連の技術調査を行っているのですが、そこであった笑い話をひとつ。


Android端末にはSQLiteという簡易データベースが内臓されているのですが、
このSQLite、簡易というだけあって他のデータベース(オラクルとかPostgreSQLとか・・・)とは
かなり異なります。

日付の扱いも異なるひとつですが、日付についてのマニュアルの翻訳が載っているサイト
(こちら)
を見て、試していてそれは起こりました。

date 関数は、strftime('%Y-%M-%D', timestring, ...) のエイリアスです。
という説明があったので、筆者はそのとおりに試してみたのですがどうもうまくいきません。
試したかったのは『'%Y-%M-%D'』部分で、この場合の処理結果は『2011-07-05』とかなるのですが
筆者が欲しいのは『20110705』・・・ "-"が邪魔なわけです。
あれこれ試して、サイトを見直してみると・・・
%Y 年 (0000-9999)
これは問題ないです。
%M 分 (00-59)
  %m 月 (01-12)
  %d 月における日 (00-31)
ををう! orz

日付を取りたくて"%D"としていたのがエラーになっていた様子・・・
マニュアルといえど人の作ったもの。
まるっと信じてはいけないですね。
(そんなことをいつも考えていると禿げそうになりますが・・・)