datetimeとtimestampの使い分けについて [重複]。
質問
検索してみたのですが、明確な回答がありません(特に後者)。どのような場合にdatetimeやtimestampを使うべきなのでしょうか?
どのように解決するのですか?
MS SQL Server を使用していると仮定して(そうでない場合は の更新を参照してください。 ):
テーブルが持つことができるタイムスタンプ カラムを持つことができます。タイムスタンプ カラムの値は、タイムスタンプカラムを含む行が タイムスタンプ列の値は、タイムスタンプ列を含む行が挿入または更新される 更新される。この特性 この特性により、タイムスタンプ・カラムは キー、特に主キーの候補としては不適切です。 キーに適していません。行を更新すると タイムスタンプの値を変更し、それによって キーの値を変更します。もし、そのカラム が主キーである場合、古いキー値 は無効となり、その値を参照する外部キー を参照する外部キーは無効となる。 は無効になる。テーブルが動的カーソルで参照される場合 動的カーソルで参照されている場合、すべての更新は 更新はカーソル内の行の位置を変更します。 行の位置を変更する。もしカラムが がインデックスキーである場合、データ行に対する全ての更新は データ行の更新は インデックスの更新も発生します。
に関する情報 MSDN
もし、ある行に対して日付や時刻の情報を保存し、その日付や時刻が変化しないようにする必要がある場合はDateTimeを、そうでない場合はTimestampを使用してください。
また、注意してください。 MS SQL Server のタイムスタンプフィールドは日付でも時間でもなく、データが変更されたときの相対的な順序を表すバイナリ表現です。
更新
MySQLと言うことでアップデートしました。
TIMESTAMP 値は、現在のタイムゾーンから UTC に変換されます。 現在のタイムゾーンからUTCに変換され 保存され、UTCから元のタイムゾーンに変換されます。 から現在のタイムゾーンに戻されます。 に変換されます。(この現象は TIMESTAMPデータ型にのみ発生し、DATETIMEなどの他のデータ型には発生しない)。 DATETIMEなどの他の型では発生しません)。
引用元 MySQL リファレンス
さらに注目すべきは
<ブロッククオートTIMESTAMP 値を保存した後 タイムゾーンを変更して取得した場合 を取得した場合、取得した値は保存した値とは は保存した値とは異なります。
したがって、タイムゾーンをまたいでアプリケーションを使用していて、個々のユーザーの設定を反映した日付/時刻が必要な場合は、Timestampを使用します。タイムゾーンに関係なく一貫性が必要な場合は、Datetimeを使用します。
関連
-
mysqlインデックスが長すぎる特殊なキーが長すぎる解決策
-
msql クエリでのエラー 'where 節' の不明な列 'yellow fruit'
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] DateTime型の誕生日から年齢を計算するにはどうしたらいいですか?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] UnixのタイムスタンプをDateTimeに、またはその逆に変換するにはどうすればよいですか?
-
[解決済み] Ruby on Railsで、DateTime、Timestamp、Time、Dateの違いは何ですか?
-
[解決済み] datetime、Timestamp、datetime64の相互変換について
-
[解決済み】文字列をdatetimeに変換する
-
[解決済み】MySQLのDatetimeカラムにデフォルト値を設定する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQL Innodb インデックスメカニズム詳細解説
-
MySqlの整数インデックスと文字列インデックスの失敗または暗黙の変換問題
-
mysqlにおけるvarcharの日付比較とソートの実装
-
mysqlインデックスが長すぎる特殊なキーが長すぎる解決策
-
[解決済み] [GROUP BY句に含まれるか、集約関数で使用される必要があります。
-
Mysql がエラー 1241 を報告 オペランドは 1 つのカラムを含む必要があります。
-
Mysqlデータベースへのリンク時にpymysqlがConnection refusedエラーを報告する
-
[解決済み] KEYキーワードは何を意味するのか?
-
[解決済み] Mysqlでidを使用してテーブルから多くの行を削除する
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?