ホームページ >データベース >mysql チュートリアル >mysqlではどのような種類の時間が使用されますか?

mysqlではどのような種類の時間が使用されますか?

青灯夜游
青灯夜游オリジナル
2022-06-10 20:14:4424174ブラウズ

時刻タイプには 3 つのタイプがあります: 1. TIME タイプ、時間情報のみが必要な値に使用されます。格納に 3 バイトが必要で、形式は「HH:MM:SS」です。 . DATETIME 型、日付と時刻の両方の情報を含む必要がある値の場合、格納に 8 バイトが必要で、形式は「YYYY-MM-DD HH:MM:SS」です; 3. TIMESTAMP 型、値に使用されます日付と時刻の両方の情報を含める必要があります。値の保存には 4 バイトが必要で、形式は「YYYY-MM-DD HH:MM:SS」です。

mysqlではどのような種類の時間が使用されますか?

このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。

MySQL には、YEAR、TIME、DATE、DTAETIME、TIMESTAMP など、日付と時刻を表す多くのデータ型があります。年情報のみを記録する場合は、YEAR タイプのみを使用できます。

各タイプには正当な値の範囲があります。不正な値が指定された場合、システムはデータベースに「ゼロ」値を挿入します。

時間を表すタイプは 3 つあります。

#DATETIMEYYYY-MM-DD HH:MM:SS1000-01-01 00:00:00 ~ 9999-12-31 23:59:598 バイトTIMESTAMPYYYY-MM-DD HH:MM:SS1980-01-01 00 :00:01 UTC ~ 2040-01-19 03:14:07 UTC4 バイト

TIME 型

TIME 型は、時間情報のみを必要とする値に使用され、格納に 3 バイトが必要です。形式は HH:MM:SS です。 HH は時間を表し、MM は分を表し、SS は秒を表します。

TIME 型の値の範囲は -838:59:59~838:59:59 です。時の部分が大きいのは、TIME 型は時刻を表すだけではないためです。 1 日 (24 時間未満である必要があります)、イベントからの時間、または 2 つのイベントの間の時間 (24 時間を超えることも、負の値になる場合もあります) であることもあります。

TIME 値は、以下に示すように、さまざまな形式を使用して指定できます。

  • 'D HH:MM:SS' 形式の文字列。 「HH:MM:SS」、「HH:MM」、「D HH」、「SS」などの「非厳密」構文も使用できます。ここでの D は日を表し、0 ~ 34 の値を取ることができます。データベースに挿入するときに、D は時間に変換され、「D*24 HH」形式で保存されます。

  • 'HHMMSS' 形式、区切り文字のない文字列、または意味のある時刻を想定した HHMMSS 形式の数値。たとえば、「101112」は「10:11:12」として理解されますが、「106112」は無効であり(意味のない分の部分があります)、保存されると 00:00:00 になります。

ヒント: TIME カラムに短縮値を割り当てるときは、コロンがない場合、MySQL は値を解釈するときに右端の 2 桁が秒を表すものと想定することに注意してください。 。 (MySQL は TIME 値を現在時刻ではなく過去の時刻として解釈します)。たとえば、読者は「1112」と 1112 が 11:12:00 (つまり、11 時から 12 分後) を意味すると考えるかもしれませんが、MySQL はそれらを 00:11:12 (つまり、11 分 12 秒) として解釈します。 )。同様に、「12」と 12 は 00:00:12 として解釈されます。逆に、TIME 値にコロンが使用されている場合は、その日の時刻とみなされます。つまり、「11:12」は 00:11:12 ではなく、11:12:00 を意味します。

DATETIME 型

DATETIME 型は、日付と時刻の情報の両方を含む必要があり、格納に 8 バイトを必要とする値に使用されます。日付形式は「YYYY-MM-DD HH:MM:SS」です。ここで、YYYY は年、MM は月、DD は日、HH は時、MM は分、SS は秒を表します。

##DATETIME 型のフィールドに値を割り当てる場合、以下に示すように、DATETIME の日付形式に準拠している限り、文字列型または数値型のデータを挿入できます。

#「YYYY-MM-DD HH:MM:SS」または「YYYYMMDDHHMMSS」の文字列形式で表される日付。値の範囲は「1000-01-01 00:00:00」~」です。 9999-12-3 23:59:59」。たとえば、「2014-12-31 05:05:05」または「20141231050505」と入力すると、データベースに挿入される DATETIME 値は 2014-12-31 05:05:05 になります。
  • 「YY-MM-DD HH:MM:SS」または「YYMMDDHHMMSS」文字列形式で表される日付。YY は 2 桁の年の値を表します。先ほどと同様に、「00~79」の範囲の年の値は「2000~2079」に変換され、「80~99」の範囲の年の値は「1980~1999」に変換されます。たとえば、「14-12-31 05:05:05」と入力すると、データベースに挿入される日時は 2014-12-31 05:05:05 となり、141231050505 と入力すると、データベースに挿入される日時は 2014 になります。 -12-31 05:05:05 。
  • YYYYMMDDHHMMSS または YYMMDDHHMMSS 数値形式で表される日付と時刻。たとえば、20141231050505 と入力すると、データベースに挿入される DATETIME は 2014-12-31 05:05:05 になり、140505050505 と入力すると、データベースに挿入される DATETIME は 2014-12-31 05:05:05 になります。
  • ヒント: MySQL では「緩和された」構文が許可されています。任意の句読点を日付部分または時刻部分の間の区切り文字として使用できます。たとえば、「98-12-31 11:30:45」、「98.12.31 11 30 35」、「98/12/31 11*30*45」、「98@12@31 11^30^45」などです。同様に、これらの値はデータベースに正しく挿入できます。

TIMESTAMP型

TIMESTAMPの表示形式はDATETIMEと同じで、表示幅は19文字固定、日付形式はYYYYです。 MM-DD HH:MM :SS、ストレージに 4 バイトが必要です。ただし、TIMESTAMP カラムの値の範囲は、DATETIME の値の範囲である '1970-01-01 00:00:01'UTC ~ '2038-01-19 03:14:07'UTC よりも小さくなります。データを挿入するときは、それが正当な値の範囲内であることを確認してください。

ヒント: 協定世界時 (英語: Coowned Universal Time、フランス語: Temps Universel Coordonné) は、世界統一時、世界標準時、および国際協定時とも呼ばれます。英語 (CUT) とフランス語 (TUC) の略称は異なるため、妥協案として略称は UTC になります。

TIMESTAMP と DATETIME、ストレージ バイトとサポートされる範囲の違いに加えて、最大の違いは次のとおりです。

DATETIME 日付データを保存する場合、日付データに従って保存します。実際の入力形式、つまり、タイムゾーンに関係なく、入力された内容が保存されます;
  • TIMESTAMP 値は UTC (協定世界時) 形式で保存されます。保存時に現在のタイム ゾーンが変換され、取得時に現在のタイム ゾーンに変換されます。つまり、クエリ時に表示される時刻値は、現在のタイムゾーンに応じて異なります。

ヒント: DATE 値を DATETIME または TIMESTAMP オブジェクトに割り当てると、結果の値の時刻部分は '00:00:00' に設定されるため、 DATE 値には時間情報は含まれません。 DATE オブジェクトに DATETIME または TIMESTAMP 値が割り当てられている場合、結果の値の時刻部分が削除されるため、DATE 値には時刻情報が含まれません。

[関連する推奨事項: mysql ビデオ チュートリアル ]

タイプ名 時間形式 日付範囲 ストレージ要件
TIME HH:MM:SS -838:59:59 ~ 838:59:59 3 バイト

以上がmysqlではどのような種類の時間が使用されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。