私が現在設計しているプログラムはdd/mm/yyyy
日付形式を使用していますが、Sqlite の標準形式はyyyy-mm-dd
. 私のプログラムでは、julianday('yyyy-mm-dd') を使用してかなり多くの日付計算を使用しています。操作を使用するか、db フロントエンドを設計している言語のコードを使用して、dd/mm/yyyy
フォーマットを変換できることを知っています。しかし、私はそれらを避けたいです。何か案が?yyyy-mm-dd
SUBSTR(X,Y)
1 に答える
2
次の理由から、データベース エンジンによって提供されるネイティブの日付形式を使用して、常に日付 (およびタイムスタンプ) を格納する必要があります。
- ネイティブ形式では、ネイティブの日付算術関数を使用できます。
- ネイティブ形式ではインデックスを一貫して適用できるため、日付比較を効率的に使用し、BETWEEN などの演算子を使用できます。
- ネイティブ形式は、ディスクに保存するためのスペースが少なくて済みます。SQLite の場合、日付を紀元前 4174 年からの実際の日数、または 1970 年 1 月 1 日からの整数の秒数として保存するには、8 バイトかかります。あなたの表現には、少なくとも10バイトかかります。
SQLite は実際には真のネイティブな日付/日時型を持っていませんが (私の意見ではこれは大きな省略です)、3 つの許容される形式があります: TEXT、REAL、または INTEGER はまだ (ある程度) ネイティブな日時形式として扱われます。上記の利点は引き続き適用されます。
アプリケーションで日付を表示する必要がある場合は、目的の形式で日付を表示する方法を知っているスクリプトまたはその他のプログラミング言語によって提供されるライブラリを使用する必要があります。
つまり、データベースを使用してデータを保存、比較、取得し、アプリケーションを使用して目的の形式でレンダリングします。
于 2013-06-15T06:22:12.440 に答える