MySQL エラー ERROR 1264 (22003): Out of range value for column ‘xxx’ at row 1

ERROR 1264 (22003): Out of range value for column 'i' at row 1

MySQL で 下のような テーブルを作成

create table table1(i int);

2147483647 以上の数字を書き込むと下のエラーが出る

ERROR 1264 (22003): Out of range value for column 'i' at row 1

iをBIGINTに変更すると 9223372036854775807まで書けるので、 2147483648も書込み可能

create table table1(i bigint);

INTでもマイナスを使わないなら unsignedが使える

create table table1(i int unsigned);

int unsignedの場合4294967295まで入る

整数型 一覧

ストレージ 最小値 最大値
  (バイト) (符号付き/符号なし) (符号付き/符号なし)
TINYINT 1 -128 127
    0 255
SMALLINT 2 -32768 32767
    0 65535
MEDIUMINT 3 -8388608 8388607
    0 16777215
INT 4 -2147483648 2147483647
    0 4294967295
BIGINT 8 -9223372036854775808 9223372036854775807
    0 18446744073709551615

MariaDB 日付 DateTime での SQL case文

datetimeをselect case 四半期で別ける

MariaDBDateTimeを月単位や四半期で別けたい場合のSQLコード例です。

下↓の、 DateTimeが入ったテーブルがあります。

datetimeテーブル
テーブルの中身

2022年の、 1〜12月01日が入っています。

テーブルを select case で、 四半期に別ける場合のコード例

SELECT `day`, 
CONCAT(CONVERT(YEAR(`day`) ,CHAR),'年',CONVERT(MONTH(`day`) ,CHAR),'月') AS `Monthly`,
case 
WHEN (MONTH(`day`) <=3) THEN '第一四半期'
WHEN (MONTH(`day`) >=4) AND (MONTH(`day`) <=6)THEN '第二四半期'
WHEN (MONTH(`day`) >=7) AND (MONTH(`day`) <=9)THEN '第三四半期'
WHEN (MONTH(`day`) >=10) AND (MONTH(`day`) <=12)THEN '第四四半期'
ELSE '' END AS `quarters`
FROM date_test
四半期で別ける
四半期で別ける
2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED