MySQL整数/日付/時間タイプの説明
一、mysql整数タイプ:
TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT.8,16,24,32,64ビットのストレージスペースをそれぞれ使用します.
MySQL整数タイプ:格納領域、整数範囲の比較.
記憶される値の範囲は−2(N−1)〜2(N−1)−1であり、符号なし記憶範囲は0〜2 N−1である.
mysqlは整数タイプの幅を指定することができます.例えばint(11)は、ほとんどのアプリケーションでは意味がありません.値の正当な範囲を制限することはありません.mysqlを規定するいくつかのインタラクティブツール(例えばmysqlコマンドラインクライアント)が文字の個数を表示するために使用することを規定します.保存と計算ではint(1)とint(20)は同じです.
二、mysql日付タイプ:
MySQL日付タイプ:日付フォーマット、占有ストレージスペース、日付範囲比較.
timestampタイプのカラムには、デフォルトではinsert、updateデータの場合、timestampカラムは自動的に現在時刻(CURRENT_TIMESTAMP)で充填/更新されます.自動とは、それを管理せずにMySQLが処理することを意味します.
timestampに表示される値は、タイムゾーン、mysqlサーバ、オペレーティングシステム、およびクライアント接続に依存します.datetimeが表示する値はタイムゾーンとは関係なく、テキストが表す日付と時間を保持します.
三、mysql時間タイプ:
MySQL時間タイプ:時間フォーマット、占有ストレージスペース、時間範囲.
time時間範囲がこんなに広い範囲なのに、特にtimeが負の値を取ることができるのはおかしい.その後、MySQLのマニュアルを見て、2つの日付の時間を満たすためにこのように設計されたことを知りました.
なお、timediffの2つのパラメータはdatetime/timestamp、timeタイプのみであり、この2つのパラメータタイプは同じである.すなわち、datetime/timestampとdatetime/timestampを比較する.timeとtimeを比較します.
MySQLの日付タイプは豊富ですが、残念ながら、現在(2008-08-08)の日付タイプは秒レベルまでしかサポートされておらず、ミリ秒、マイクロ秒はサポートされていません.ミリ秒の関数も生成されていません.
TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT.8,16,24,32,64ビットのストレージスペースをそれぞれ使用します.
MySQL整数タイプ:格納領域、整数範囲の比較.
------------ --------- ------------------------ -----------------------------------------
tinyint 8 bits 0 ~ 255 -128 ~ 127
smallint 16 bits 0 ~ 65535 -32768 ~ 32767
mediumint 24 bits 0 ~ 16777216 -8388608 ~ 8388607
int 32 bits 0 ~ 4294967295 -2147483648 ~ 2147483647
bigint 64 bits 0 ~ 18446744073709551615 -9223372036854775808 ~ 9223372036854775807
記憶される値の範囲は−2(N−1)〜2(N−1)−1であり、符号なし記憶範囲は0〜2 N−1である.
mysqlは整数タイプの幅を指定することができます.例えばint(11)は、ほとんどのアプリケーションでは意味がありません.値の正当な範囲を制限することはありません.mysqlを規定するいくつかのインタラクティブツール(例えばmysqlコマンドラインクライアント)が文字の個数を表示するために使用することを規定します.保存と計算ではint(1)とint(20)は同じです.
二、mysql日付タイプ:
MySQL日付タイプ:日付フォーマット、占有ストレージスペース、日付範囲比較.
------------ --------- --------------------- -----------------------------------------
datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
timestamp 4 bytes YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 ~ 2038
date 3 bytes YYYY-MM-DD 1000-01-01 ~ 9999-12-31
year 1 bytes YYYY 1901 ~ 2155
timestampタイプのカラムには、デフォルトではinsert、updateデータの場合、timestampカラムは自動的に現在時刻(CURRENT_TIMESTAMP)で充填/更新されます.自動とは、それを管理せずにMySQLが処理することを意味します.
timestampに表示される値は、タイムゾーン、mysqlサーバ、オペレーティングシステム、およびクライアント接続に依存します.datetimeが表示する値はタイムゾーンとは関係なく、テキストが表す日付と時間を保持します.
三、mysql時間タイプ:
MySQL時間タイプ:時間フォーマット、占有ストレージスペース、時間範囲.
------------ --------- --------------------- -----------------------------------------
time 3 bytes HH:MM:SS -838:59:59 ~ 838:59:59
time時間範囲がこんなに広い範囲なのに、特にtimeが負の値を取ることができるのはおかしい.その後、MySQLのマニュアルを見て、2つの日付の時間を満たすためにこのように設計されたことを知りました.
select timediff('2000:01:31 23:59:59', '2000:01:01 00:00:00'); -- 743:59:59
select timediff('2000:01:01 00:00:00', '2000:01:31 23:59:59'); -- -743:59:59
select timediff('23:59:59', '12:00:00'); -- 11:59:59
なお、timediffの2つのパラメータはdatetime/timestamp、timeタイプのみであり、この2つのパラメータタイプは同じである.すなわち、datetime/timestampとdatetime/timestampを比較する.timeとtimeを比較します.
MySQLの日付タイプは豊富ですが、残念ながら、現在(2008-08-08)の日付タイプは秒レベルまでしかサポートされておらず、ミリ秒、マイクロ秒はサポートされていません.ミリ秒の関数も生成されていません.