本記事では具体的な例を通じて、クエリ内で型変換関数をどのように使用するかを紹介します。
型変換関数
型変換関数は、あるデータ型を別のデータ型に変換することができます。例えば、数値型や日付時刻型と文字列型との相互変換が可能です。
例
時間文字列を日付時刻型に変換する
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