MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで文字列を月(数値)に変換するクエリの書き方

MySQLで「Jan」や「Mar」のような月名の文字列を数値(1、3など)に変換したい場合は、str_to_date() 関数と month() 関数を組み合わせて使用します。

select month(str_to_date(カラム名,'%b')) from テーブル名;

フォーマット指定子の %b は、省略形の月名(Jan、Feb、Marなど)を表します。まずは、サンプル用のテーブルを作成しましょう。

mysql> create table DemoTable
    (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    MonthName varchar(100)
    );
Query OK, 0 rows affected (0.76 sec)

次に、insertコマンドを使用してレコードを挿入します。

mysql> insert into DemoTable(MonthName) values('Jan');
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable(MonthName) values('Mar');
Query OK, 1 row affected (0.13 sec)

select文ですべてのレコードを確認してみましょう。

mysql> select *from DemoTable;

出力結果

+----+-----------+
| Id | MonthName |
+----+-----------+
| 1  | Jan       |
| 2  | Mar       |
+----+-----------+
2 rows in set (0.00 sec)

それでは、文字列を月(数値)に変換するクエリを見ていきましょう。

mysql> select month(str_to_date(MonthName,'%b')) from DemoTable;

出力結果

+------------------------------------+
| month(str_to_date(MonthName,'%b')) |
+------------------------------------+
| 1                                  |
| 3                                  |
+------------------------------------+
2 rows in set (0.05 sec)

このように、str_to_date() で月名の文字列を日付値に変換し、month() で月の数値を取得することで、簡単に文字列から月の数値への変換が実現できます。

  1. MySQLのDATE_FORMAT関数でタイムスタンプから月番号を取得する方法

    MySQLでタイムスタンプ型のカラムから「月の番号だけ」を取り出したい場合、DATE_FORMAT() 関数を使うのが便利です。書式指定子 %m を指定することで、01〜12の形式で月番号を文字列として取得できます。この記事では、実際にテーブルを作成し、データを登録して、月番号を抽出するまでの一連の手順をサンプルコード付きで解説します。1. サンプルテーブルの作成まず、TIMESTAMP型のカラムを持つテーブルを作成します。mysql> create table DemoTable1999 ( ArrivalDate timestamp ); Query OK,

  2. PHPで文字列を数値に変換する方法をわかりやすく解説

    PHPで文字列を数値に変換する方法はいくつかあります。最もシンプルなのは、キャスト演算子を使う方法です。ここでは、基本的な変換方法をサンプルコードとともに紹介します。例1:(int)によるキャストで整数に変換<?php     $str = "150";     $num = (int)$str;     echo "Number (Converted from String) = $num"; ?>出力結果上記のコードを実