2

私のプログラムでは、人々の誕生日をsqliteデータベースに保存する必要があります。次に、プログラム内で、誕生日と年齢も表示する必要があります。

日付を1つの列に保存する特別な方法ですか、それとも日、月、年に分けて保存する必要がありますか。

私の他の質問は、彼らの年齢を年、月、日として正確に取得する方法です。ある種の関数でこれを行うことは可能ですか?

4

2 に答える 2

3

日付は、テキスト、実数、または整数として単一の列に格納でき、組み込みdate関数で使用できます。

ドキュメンテーション:

1。2日付と時刻のデータ型

SQLiteには、日付や時刻を保存するためのストレージクラスがありません。代わりに、SQLiteの組み込みの日付と時刻関数は、日付と時刻をTEXT、REAL、またはINTEGER値として格納できます。

ISO8601文字列としてのTEXT ( "YYYY-MM-DD HH:MM:SS.SSS")。
ユリウス日数としてのREAL、先発グレゴリオ暦による紀元前4714年11月24日のグリニッジでの正午からの日数。
UNIX時間としてのINTEGER 、1970-01-0100:00:00UTCからの秒数。アプリケーションは、これらの形式のいずれかで日付と時刻を保存し、組み込みの日付と時刻関数を使用して形式間で自由に変換することを選択できます。

データベースからユーザーの年齢を選択する例は次のとおりです。

-- '2001-01-01' would be the text column where you store the birthdate 
SELECT (strftime('%Y', 'now') - strftime('%Y', '2001-01-01')) - (strftime('%m-%d', 'now') < strftime('%m-%d', '2001-01-01')) AS 'Years'

[reference]

于 2012-12-04T21:15:58.373 に答える
1

http://www.sqlite.org/datatype3.htmlのsqliteドキュメントでは、ISO8601文字列の使用を推奨しています。SQLiteは、クエリで使用できるいくつかの関数も提供します:http ://www.sqlite.org/lang_datefunc.html

于 2012-12-04T21:17:53.090 に答える