本記事では、具体的な例を通じてクエリ内で型変換関数を使用する方法を紹介します。
型変換関数
型変換関数は、あるデータ型を別のデータ型に変換することができます。例えば、数値型と時刻型と文字列型の相互変換などです。
例
時刻文字列を時刻型に変換する
OceanBase データベースの MySQL モードでは、時刻文字列を DATE 型に直接代入できます。OceanBase データベースはそれを自動的に時刻型に変換できます。また、CONVERT() または CAST() 関数を使用してデータ型の変換を行うこともできます。SQL ステートメントの例は以下のとおりです:
obclient> SELECT CONVERT('2020-02-02 14:30:45', DATE) t1
, CONVERT('2020-02-02 14:30:45', TIME) t2
, CONVERT('2020-02-02 14:30:45', DATETIME) t3
, CAST('2020-02-02 14:30:45' AS DATE) t4
, CAST('2020-02-02 14:30:45' AS TIME) t5
, CAST('2020-02-02 14:30:45' AS DATETIME) t6
\G
*************************** 1. row ***************************
t1: 2020-02-02
t2: 14:30:45
t3: 2020-02-02 14:30:45
t4: 2020-02-02
t5: 14:30:45
t6: 2020-02-02 14:30:45
1 row in set
説明
DATE_FORMAT 関数を使用すると、時刻型を文字列型に変換できます。
数値型と文字列型の相互変換
OceanBase データベースの MySQL テナントでは、CONVERT() または CAST() 関数を使用して数値型と文字列型の相互変換を実現できます。
obclient> SELECT CONVERT('3.1415926', DECIMAL) n1
, CAST('3.1415926' AS DECIMAL) n2
, CONVERT(3.1415926, CHAR(10)) s1
, CAST(3.1414926 AS CHAR(10)) s2;
+------+------+-----------+-----------+
| n1 | n2 | s1 | s2 |
+------+------+-----------+-----------+
| 3 | 3 | 3.1415926 | 3.1414926 |
+------+------+-----------+-----------+
1 row in set