3

私は、リレーショナルかどうかに関係なく、複数のデータベースを簡単に操作できるように設計されたさまざまなORMとデータベース抽象化を使用してきました。より包括的なソリューションでは、通常、実際のSQL(または、SQL以外のデータベースの場合は何でも)に要約されるいくつかの日付関数にアクセスできます。一方、これらの抽象化の多くはSQL関数への直接アクセスを提供せず、日付を直接処理する機能を失います。代わりに、上位レベルの言語(PHP、Pythonなど)を使用して日付のラングリングを行い、最後に、フォーマットされた日付を挿入、選択、何を持っているかのみを指定する必要があります。

だから私の質問はこれです:SQLサーバーが日付自​​体で何もできない場合は、intを使用してエポックタイムスタンプを入れる方が良いですか、それともデータベースサーバーに日付であることを「知っている」という付加価値がありますか? ?

4

2 に答える 2

3

日付を使用している場合は、日付として保存します。

これにより、データベースとアプリケーション間の変換が容易になるだけでなく、日付に基づいて何かを行う必要がある場合(そうでない場合は、なぜ日付が保存されるのですか?)。

つまり、日付を使用して並べ替えやクエリを実行する必要がある場合、日付に再変換するために特別な作業を行う必要はありません。

于 2012-12-12T13:59:10.400 に答える
1

それ以外に、日付関連の関数を使用したこと@Oded saidがない場合でも、いくつかの問題があります。

  • 現時点では、cannot store epoch timestamp in milliseconds into an INTフィールド(オーバーフロー)します。

  • ミリ秒のないタイムスタンプは、より大きくなるため、INTをオーバーフローします。Tue Jan 19 2038 @ 03:14:08 GMT+0000 (GMT)2147483647

  • ただし、整数は4バイト、日時は8バイトです。You are better off 4 bytes if you are within above two limitations.

于 2012-12-12T14:31:52.410 に答える