の基本ガイド概要:このチュートリアルでは、SQL ServerDATETIME2
を使用して日付と時刻の両方のデータをテーブルに格納する方法を学習します。
SQL Serverの概要DATETIME2
日付と時刻の両方をデータベースに格納するには、SQL ServerDATETIME2
データ型を使用します。
DATETIME2
の構文は次のとおりです:
Code language: SQL (Structured Query Language) (sql)
小数部の秒の精度はオプションです。 範囲は0~7です。
次のステートメントは、DATETIME2
列で構成されるテーブルを作成する方法を示しています:
Code language: SQL (Structured Query Language) (sql)
DATETIME2
には日付と時刻の2つの要素があります。
- 日付の範囲はJanuary01,01(0001-01-01)からDecemberまでです31, 9999 (9999-12-31)
- 時間の範囲は00:00:00から23:59:59.9999999です。
DATETIME2
値の記憶域サイズは、小数秒の精度に依存します。 精度が3未満の場合は6バイト、3~4の精度の場合は7バイト、その他のすべての精度の場合は8バイトが必要です。
DATETIME2
のデフォルトの文字列リテラル形式は次のとおりです:
Code language: SQL (Structured Query Language) (sql)
この形式では:
-
YYYY
2018年などの年を表す4桁の数字です。 それは0001から9999まで及ぶ。 MM
は、12などの年の月を表す2桁の数字です。 それは01から12まで及ぶ。DD
は、指定された月の日を表す2桁の数字です。 それは01から31まで及ぶ。hh
は、時間を表す2桁の数字です。 それは00から23まで及ぶ。mm
は、分を表す2桁の数字です。 それは00から59まで及ぶ。ss
は、秒を表す2桁の数字です。 それは00から59まで及ぶ。- 小数秒は0から7桁の数字で、0から9999999の範囲です。
SQL Server DATETIME2例
次のステートメントは、データ型が次のcreated_at
列を持つ新しいテーブルを作成しますDATETIME2
:
Code language: SQL (Structured Query Language) (sql)
現在の日付と時刻をcreated_at
列に挿入するには、GETDATE
()関数で次のINSERT
ステートメントを使用します:
Code language: SQL (Structured Query Language) (sql)
GETDATE
()関数は、MySQL
などの他のデータベースシステムのNOW()
関数と似ています。DATETIME2
列にリテラル値を挿入するには、次のステートメントを使用します:
Code language: SQL (Structured Query Language) (sql)
created_at列のデフォルト値を現在の日付と時刻に設定する場合は、次のALTER TABLE
ステートメントを使用します:
Code language: SQL (Structured Query Language) (sql)
この文では、created_at
列のデフォルト値としてCURRENT_TIMESTAMP
を使用します。 CURRENT_TIMESTAMP
はGETDATE
()関数と同じ値を返すことに注意してください。ここで、created_at
列の値を指定せずにテーブルに新しい行を挿入すると、SQL Serverはその列の現在の日付と時刻の値を使用します:
Code language: SQL (Structured Query Language) (sql)
このチュートリアルでは、SQL ServerDATETIME2
データ型を使用して、日付と時刻の両方のデータをテーブルに格納する方法を学習しました。