型変換関数
データ変換でよくある問題
ClickHouse は一般的に C++ プログラムと同じ挙動 を採用しています。
to<type> 関数と cast は、いくつかのケースで異なる動作をします。たとえば LowCardinality の場合、cast は LowCardinality の特性を削除しますが、to<type> 関数は削除しません。Nullable についても同様です。この挙動は SQL 標準とは互換性がなく、cast_keep_nullable SETTING を使用して変更できます。
あるデータ型の値を、より小さいデータ型(たとえば Int64 から Int32)や互換性のないデータ型(たとえば String から Int)に変換する場合、データが失われる可能性があることに注意してください。結果が期待どおりになっているかを慎重に確認してください。
例:
toString 関数に関する注意事項
toString 系の関数は、数値、文字列(ただし FixedString ではない)、日付、および日時の間での変換を行います。
これらの関数はすべて 1 つの引数を受け取ります。
- 文字列への変換または文字列からの変換を行う場合、値は TabSeparated 形式(およびほぼすべての他のテキスト形式)と同じルールに従ってフォーマットまたは解析されます。文字列を解析できない場合は例外がスローされ、クエリはキャンセルされます。
- 日付を数値に変換する場合、またはその逆の場合、日付は Unix エポックの開始からの日数に対応します。
- 日時を数値に変換する場合、またはその逆の場合、日時は Unix エポックの開始からの秒数に対応します。
DateTime引数に対するtoString関数は、タイムゾーン名を含む 2 つ目の String 引数を取ることができます(例:Europe/Amsterdam)。この場合、時刻は指定されたタイムゾーンに従ってフォーマットされます。
toDate/toDateTime 関数に関する注意事項
toDate/toDateTime 関数で使用される日付および日時の形式は、次のように定義されています。
例外として、UInt32、Int32、UInt64、または Int64 の数値型から Date への変換において、数値が 65536 以上の場合、その数値は日数ではなく Unix タイムスタンプとして解釈され、日付に丸められます。
これにより、本来であればエラーとなり、より煩雑な toDate(toDateTime(unix_timestamp)) と書く必要があるところを、よくある toDate(unix_timestamp) の記述もサポートできるようになります。
日付と日時との相互変換は、時刻 0 を付加するか、時刻を切り捨てるという自然な方法で行われます。
数値型同士の変換は、C++ における異なる数値型間の代入と同じルールに従います。
例
クエリ:
結果:
toUnixTimestamp 関数も参照してください。
CAST
導入バージョン: v1.1
値を指定したデータ型に変換します。
reinterpret 関数とは異なり、CAST はターゲット型で同じ値を表現しようとします。
それが不可能な場合は、例外が送出されます。
構文
引数
戻り値
指定したデータ型に変換された値を返します。Any
例
基本的な使用方法
AS 句の使用
「::」構文の使用
accurateCast
導入バージョン: v1.1
値を指定されたデータ型に変換します。CAST と異なり、accurateCast はより厳密な型チェックを行い、変換によって精度の損失が発生する場合や、変換が不可能な場合には例外をスローします。
この関数は、精度の損失や無効な変換を防ぐため、通常の CAST よりも安全です。
構文
引数
返り値
変換先のデータ型に変換された値を返します。Any
例
成功した変換
文字列から数値への変換
accurateCastOrDefault
導入バージョン: v21.1
値を指定されたデータ型に変換します。
accurateCast と同様ですが、変換を正確に行えない場合は、例外をスローする代わりにデフォルト値を返します。
第 2 引数としてデフォルト値を指定する場合、その値は変換先の型である必要があります。 デフォルト値を指定しない場合は、変換先の型のデフォルト値が使用されます。
構文
引数
x— 変換する値。AnyT— 変換先のデータ型名。const Stringdefault_value— オプション。変換に失敗した場合に返されるデフォルト値。Any
戻り値
変換先のデータ型に変換された値、または変換が不可能な場合はデフォルト値を返します。Any
使用例
正常に変換できる場合
明示的なデフォルト指定時の変換失敗
暗黙のデフォルト値を伴う変換失敗
accurateCastOrNull
導入バージョン: v1.1
値を指定したデータ型に変換します。
accurateCast と同様ですが、変換を正確に実行できない場合に、例外をスローする代わりに NULL を返します。
この関数は、accurateCast の安全性と、より扱いやすいエラー処理を兼ね備えています。
構文
引数
返される値
変換先のデータ型に変換された値、または変換できない場合は NULL が返されます。Any
例
変換が成功する例
変換に失敗すると NULL を返す
formatRow
導入: v20.7
任意の式を、指定されたフォーマットで文字列に変換します。
フォーマットにサフィックスやプレフィックスが含まれている場合、それらは各行ごとに出力されます。 この関数では、行ベースのフォーマットのみがサポートされています。
構文
引数
返り値
フォーマット済みの文字列(テキスト形式の場合は通常、改行文字で終端されます)。String
例
基本的な使用方法
カスタムフォーマットを使用
formatRowNoNewline
導入バージョン: v20.7
formatRow と同じですが、各行の改行文字を取り除きます。
任意の式を指定されたフォーマットで文字列に変換しますが、結果の末尾に含まれる改行文字はすべて削除します。
構文
引数
返される値
改行を削除したフォーマットされた文字列を返します。String
例
基本的な使い方
fromUnixTimestamp64Micro
導入バージョン: v20.5
マイクロ秒単位の Unix タイムスタンプを、マイクロ秒精度の DateTime64 値に変換します。
入力値は、1970-01-01 00:00:00 UTC からの経過時間をマイクロ秒で表した Unix タイムスタンプとして扱われます。
構文
引数
返される値
マイクロ秒精度の DateTime64 値を返します。DateTime64(6)
例
使用例
fromUnixTimestamp64Milli
導入バージョン: v20.5
ミリ秒単位の Unix タイムスタンプを、ミリ秒精度の DateTime64 型の値に変換します。
入力値は、ミリ秒精度の Unix タイムスタンプ(1970-01-01 00:00:00 UTC からのミリ秒数)として扱われます。
構文
引数
戻り値
ミリ秒精度の DateTime64 型の値。DateTime64(3)
例
使用例
fromUnixTimestamp64Nano
導入バージョン: v20.5
ナノ秒単位の Unix タイムスタンプを、ナノ秒精度を持つ DateTime64 値に変換します。
入力値は、1970-01-01 00:00:00 UTC からの経過ナノ秒数としての Unix タイムスタンプとして扱われます。
入力値はタイムゾーンを考慮せず、UTC タイムスタンプとして扱われる点に注意してください。
構文
引数
返り値
ナノ秒精度の DateTime64 値を返します。DateTime64(9)
例
使用例
fromUnixTimestamp64Second
導入バージョン: v24.12
秒単位の Unix タイムスタンプを、秒精度の DateTime64 値に変換します。
入力値は、秒精度(1970-01-01 00:00:00 UTC からの経過秒数)の Unix タイムスタンプとして解釈されます。
構文
引数
戻り値
秒精度の DateTime64 型の値を返します。DateTime64(0)
例
使用例
parseDateTime
導入バージョン: v23.3
MySQL の日付フォーマット文字列に従って、日時文字列を解析します。
この関数は formatDateTime の逆の動作をします。
フォーマットを表す String を使用して、引数の String を解析します。戻り値は DateTime 型です。
構文
別名: TO_UNIXTIME
引数
time_string—DateTimeとして解釈される文字列。Stringformat—time_stringの解釈方法を指定するフォーマット文字列。Stringtimezone— 省略可。タイムゾーン。String
戻り値
MySQL 形式のフォーマット文字列に従って、入力文字列から解釈された DateTime を返します。DateTime
例
使用例
parseDateTime32BestEffort
導入バージョン: v20.9
日付と時刻の文字列表現を、DateTime データ型に変換します。
この関数は、ISO 8601、RFC 1123 - 5.2.14 RFC-822 Date and Time Specification、ClickHouse 独自の形式およびそのほかのいくつかの日付と時刻の形式を解析します。
構文
引数
返り値
time_string を DateTime として返します。DateTime
例
使用例
タイムゾーンあり
Unixタイムスタンプ
parseDateTime32BestEffortOrNull
導入バージョン: v20.9
parseDateTime32BestEffort と同様ですが、処理できない日付形式に遭遇した場合は NULL を返します。
構文
引数
返り値
文字列をパースして得られた DateTime オブジェクトを返し、パースに失敗した場合は NULL を返します。DateTime
例
使用例
parseDateTime32BestEffortOrZero
導入バージョン: v20.9
parseDateTime32BestEffort と同様ですが、解釈できない日付形式に遭遇した場合は、ゼロ日付またはゼロの日時値を返します。
構文
引数
返される値
文字列から解析された DateTime オブジェクト、または解析に失敗した場合はゼロ日時(1970-01-01 00:00:00)を返します。DateTime
例
使用例
parseDateTime64
導入バージョン: v24.11
MySQL の日付フォーマット文字列に従って、サブ秒精度を持つ日付と時刻の文字列をパースします。
この関数は、DateTime64 に対する formatDateTime の逆関数です。
フォーマット文字列を用いて String 型の引数をパースし、1900 年から 2299 年までの日付をサブ秒精度で表現できる DateTime64 型を返します。
構文
引数
time_string— DateTime64 に変換される文字列。Stringformat—time_stringの解析方法を指定するフォーマット文字列。Stringtimezone— オプション。タイムゾーン。String
返される値
MySQL スタイルのフォーマット文字列に従って、入力文字列から解析された DateTime64 を返します。DateTime64
例
使用例
parseDateTime64BestEffort
導入バージョン: v20.1
parseDateTimeBestEffort 関数と同様ですが、ミリ秒およびマイクロ秒も解析し、DateTime64 データ型を返します。
構文
引数
time_string— 変換対象の日付、または日時を含む文字列。Stringprecision— 任意。要求される精度。ミリ秒の場合は3、マイクロ秒の場合は6を指定します。デフォルトは3です。UInt8time_zone— 任意。タイムゾーン。この関数はtime_stringをこのタイムゾーンとして解釈して解析します。String
戻り値
time_string を DateTime64 データ型に変換して返します。DateTime64
例
使用例
parseDateTime64BestEffortOrNull
導入バージョン: v20.1
parseDateTime64BestEffort と同様の動作をしますが、処理できない日付形式に遭遇した場合は NULL を返します。
構文
引数
time_string— 変換対象の日付、または日時を含む文字列。Stringprecision— 省略可能。指定する精度。ミリ秒の場合は3、マイクロ秒の場合は6。デフォルト:3。UInt8time_zone— 省略可能。タイムゾーン。この関数はtime_stringをこのタイムゾーンとして解釈してパースします。String
戻り値
time_string を DateTime64 に変換して返します。入力をパースできない場合は NULL を返します。DateTime64 または NULL
例
使用例
parseDateTime64BestEffortOrZero
導入バージョン: v20.1
parseDateTime64BestEffort と同様ですが、処理できない日付形式に遭遇した場合は、ゼロ日付またはゼロ日時を返します。
構文
引数
time_string— 変換対象の日付、または日時を含む文字列。Stringprecision— 省略可能。必要な精度。ミリ秒の場合は3、マイクロ秒の場合は6。デフォルトは3。UInt8time_zone— 省略可能。タイムゾーン。関数はtime_stringをこのタイムゾーンとして解釈して解析します。String
返される値
time_string を DateTime64 に変換した値、または入力を解析できない場合はゼロ日付/日時値(1970-01-01 00:00:00.000)を返します。DateTime64
例
使用例
parseDateTime64BestEffortUS
導入バージョン: v22.8
parseDateTime64BestEffort と同様ですが、あいまいな場合には米国式の日付形式(MM/DD/YYYY など)を優先して解釈します。
構文
引数
time_string— 変換対象の日付、または日時を含む文字列。Stringprecision— 省略可。指定する精度。ミリ秒の場合は3、マイクロ秒の場合は6。デフォルト:3。UInt8time_zone— 省略可。タイムゾーン。この関数はtime_stringをこのタイムゾーンとして解釈します。String
戻り値
あいまいな日付表現については米国式の日付形式を優先して解釈し、time_string を DateTime64 に変換した値を返します。DateTime64
例
使用例
parseDateTime64BestEffortUSOrNull
導入バージョン: v22.8
この関数は、あいまいな場合に US の日付形式(MM/DD/YYYY など)を優先し、処理できない日付形式に遭遇したときに NULL を返す点を除き、parseDateTime64BestEffort と同じです。
構文
引数
time_string— 変換対象の日付、または日付と時刻を含む文字列。Stringprecision— オプション。指定する精度。ミリ秒の場合は3、マイクロ秒の場合は6。デフォルト:3。UInt8time_zone— オプション。タイムゾーン。この関数はtime_stringをこのタイムゾーンとして解釈して解析します。String
返り値
米国形式を優先して time_string を DateTime64 に変換した値、または入力を解析できない場合は NULL を返します。DateTime64 または NULL
例
使用例
parseDateTime64BestEffortUSOrZero
導入バージョン: v22.8
parseDateTime64BestEffort と同様ですが、この関数はあいまいな場合に米国式の日付形式(MM/DD/YYYY など)を優先し、処理できない日付形式に遭遇した場合はゼロの日付またはゼロの日時を返します。
構文
引数
time_string— 変換対象の日付、または日付と時刻を含む文字列。Stringprecision— 省略可。指定する精度。ミリ秒は3、マイクロ秒は6。デフォルト:3。UInt8time_zone— 省略可。タイムゾーン。この関数は、指定されたタイムゾーンに従ってtime_stringをパースします。String
戻り値
US 形式を優先してパースした結果として、time_string を DateTime64 に変換して返します。入力をパースできない場合は、ゼロ日付/日時 (1970-01-01 00:00:00.000) を返します。DateTime64
例
使用例
parseDateTime64InJodaSyntax
導入バージョン: v24.10
Joda の日付フォーマット文字列に従って、サブ秒精度を持つ日時文字列をパースします。
この関数は DateTime64 に対する formatDateTimeInJodaSyntax の逆関数です。
Joda 形式のフォーマット文字列を使って String 引数をパースします。結果として、1900 年から 2299 年までの日時をサブ秒精度で表現できる DateTime64 型を返します。
フォーマットパターンについては Joda Time documentation を参照してください。
構文
引数
time_string—DateTime64にパースされる文字列。Stringformat—time_stringのパース方法を指定する Joda 構文のフォーマット文字列。Stringtimezone— 省略可能。タイムゾーン。String
返される値
Joda スタイルのフォーマット文字列に従って、入力文字列からパースされた DateTime64 を返します。DateTime64
例
使用例
parseDateTime64InJodaSyntaxOrNull
導入バージョン: v24.10
parseDateTime64InJodaSyntax と同様ですが、パースできない日付形式に遭遇した場合は NULL を返します。
構文
引数
time_string— DateTime64 に変換する対象の文字列。Stringformat—time_stringの解析方法を指定する Joda 形式のフォーマット文字列。Stringtimezone— 任意。タイムゾーン。String
返される値
入力文字列を解析して得られた DateTime64 を返します。解析に失敗した場合は NULL を返します。Nullable(DateTime64)
例
使用例
parseDateTime64InJodaSyntaxOrZero
導入: v24.10
parseDateTime64InJodaSyntax と同様ですが、解析できない日付形式に遭遇した場合は 0 の日付を返します。
構文
引数
time_string— DateTime64 に変換される対象の文字列。Stringformat—time_stringのパース方法を指定する Joda 構文のフォーマット文字列。Stringtimezone— 省略可。タイムゾーン。String
戻り値
入力文字列からパースされた DateTime64 値、またはパースに失敗した場合は 0 の DateTime64 値を返します。DateTime64
例
使用例
parseDateTime64OrNull
導入バージョン: v24.11
parseDateTime64 と同様ですが、パースできない日付形式に遭遇した場合は NULL を返します。
構文
引数
time_string— DateTime64 型に解析される文字列。Stringformat—time_stringの解析方法を指定するフォーマット文字列。Stringtimezone— 省略可能。タイムゾーンを指定します。String
戻り値
入力文字列から解析された DateTime64 を返します。解析に失敗した場合は NULL を返します。Nullable(DateTime64)
例
使用例
parseDateTime64OrZero
導入バージョン: v24.11
parseDateTime64 と同様ですが、解析できない日付形式に遭遇した場合はゼロの日付を返します。
構文
引数
time_string— DateTime64 に解析される文字列。Stringformat—time_stringの解析方法を指定するフォーマット文字列。Stringtimezone— オプション。タイムゾーン。String
戻り値
入力文字列から解析された DateTime64、または解析に失敗した場合はゼロ値の DateTime64 を返します。DateTime64
例
使用例
parseDateTimeBestEffort
導入バージョン: v1.1
String 形式で表現された日付と時刻を DateTime データ型に変換します。 この関数は ISO 8601、RFC 1123 - 5.2.14 RFC-822 Date and Time Specification、ClickHouse 独自のものやその他のいくつかの日付・時刻フォーマットを解析します。
サポートされる非標準フォーマットは次のとおりです:
- 9〜10 桁の Unix タイムスタンプを含む文字列。
- 日付と時刻の要素を含む文字列:
YYYYMMDDhhmmss、DD/MM/YYYY hh:mm:ss、DD-MM-YY hh:mm、YYYY-MM-DD hh:mm:ssなど。 - 日付を含み、時刻の要素を含まない文字列:
YYYY、YYYYMM、YYYY*MM、DD/MM/YYYY、DD-MM-YYなど。 - 日と時刻を含む文字列:
DD、DD hh、DD hh:mm。この場合、MMは01に置き換えられます。 - 日付と時刻に加えてタイムゾーンオフセット情報を含む文字列:
YYYY-MM-DD hh:mm:ss ±h:mmなど。 - syslog のタイムスタンプ:
Mmm dd hh:mm:ss。例えば、Jun 9 14:20:32。
区切り文字を含むすべてのフォーマットでは、この関数は月の名称を完全な綴り、または先頭 3 文字で表したものを解析します。 年が指定されていない場合は、現在の年と見なされます。
構文
引数
返される値
time_string を DateTime として返します。DateTime
例
使用例
タイムゾーンあり
UNIX タイムスタンプ
parseDateTimeBestEffortOrNull
導入バージョン: v1.1
parseDateTimeBestEffort と同様ですが、処理できない日付フォーマットに遭遇した場合には NULL を返します。
この関数は ISO 8601、RFC 1123 - 5.2.14 RFC-822 Date and Time Specification、ClickHouse 独自のものやその他のいくつかの日付・時刻フォーマットをパースします。
サポートされる非標準フォーマットは次のとおりです。
- 9~10 桁の Unix タイムスタンプを含む文字列。
- 日付と時刻コンポーネントを含む文字列:
YYYYMMDDhhmmss、DD/MM/YYYY hh:mm:ss、DD-MM-YY hh:mm、YYYY-MM-DD hh:mm:ssなど。 - 日付はあるが時刻コンポーネントがない文字列:
YYYY、YYYYMM、YYYY*MM、DD/MM/YYYY、DD-MM-YYなど。 - 日と時刻のみを含む文字列:
DD、DD hh、DD hh:mm。この場合、MMは01に置き換えられます。 - 日付と時刻に加えてタイムゾーンオフセット情報を含む文字列:
YYYY-MM-DD hh:mm:ss ±h:mmなど。 - syslog タイムスタンプ:
Mmm dd hh:mm:ss。例:Jun 9 14:20:32。
区切り文字を含むすべてのフォーマットで、この関数は月名をフルスペルまたは先頭 3 文字の英字表記として解釈します。 年が指定されていない場合は、現在の年とみなされます。
構文
引数
返される値
time_string を DateTime 値として返し、入力を解析できない場合は NULL を返します。DateTime または NULL
例
使用例
parseDateTimeBestEffortOrZero
導入バージョン: v1.1
parseDateTimeBestEffort と同様ですが、処理できない日付形式に遭遇した場合に、ゼロ日付またはゼロ日時を返します。
この関数は ISO 8601、RFC 1123 - 5.2.14 RFC-822 Date and Time Specification、ClickHouse 独自およびその他の日付・時刻形式をパースします。
サポートされる非標準形式:
- 9~10 桁の Unix タイムスタンプを含む文字列。
- 日付と時刻コンポーネントを含む文字列:
YYYYMMDDhhmmss、DD/MM/YYYY hh:mm:ss、DD-MM-YY hh:mm、YYYY-MM-DD hh:mm:ssなど。 - 日付のみで時刻コンポーネントを含まない文字列:
YYYY、YYYYMM、YYYY*MM、DD/MM/YYYY、DD-MM-YYなど。 - 日と時刻を含む文字列:
DD、DD hh、DD hh:mm。この場合、月(MM)には01が補われます。 - 日付と時刻に加え、タイムゾーンオフセット情報を含む文字列:
YYYY-MM-DD hh:mm:ss ±h:mmなど。 - syslog のタイムスタンプ:
Mmm dd hh:mm:ss。例:Jun 9 14:20:32。
区切り文字を含むすべての形式については、月名をフルスペルまたは最初の 3 文字で指定したものもパースします。 年が指定されていない場合、現在の年と見なされます。
構文
引数
返される値
time_string を DateTime として返します。解析できない場合は、ゼロの日付/日時(1970-01-01 または 1970-01-01 00:00:00)を返します。DateTime
例
使用例
parseDateTimeBestEffortUS
導入バージョン: v1.1
この関数は、YYYY-MM-DD hh:mm:ss のような ISO 日付形式および、YYYYMMDDhhmmss、YYYY-MM、DD hh、YYYY-MM-DD hh:mm:ss ±h:mm など、月と日の成分を曖昧さなく抽出できるその他の日付形式に対しては、parseDateTimeBestEffort と同様に動作します。
月と日の成分を曖昧さなく抽出できない MM/DD/YYYY、MM-DD-YYYY、MM-DD-YY などの形式では、DD/MM/YYYY、DD-MM-YYYY、DD-MM-YY ではなく、米国式の日付形式を優先します。
前述のルールに対する例外として、月が 12 より大きく 31 以下である場合、この関数は parseDateTimeBestEffort の動作にフォールバックします。たとえば 15/08/2020 は 2020-08-15 としてパースされます。
構文
引数
戻り値
あいまいな場合には US の日付形式を優先して解釈し、time_string を DateTime として返します。DateTime
例
使用例
parseDateTimeBestEffortUSOrNull
導入バージョン: v1.1
parseDateTimeBestEffortUS 関数と同様ですが、処理できない日付形式に出会った場合は NULL を返します。
この関数は ISO 日付形式に対しては parseDateTimeBestEffort と同様に動作しますが、あいまいな場合には US 日付形式を優先し、パースエラー時には NULL を返します。
構文
引数
返される値
US 形式を優先して time_string を DateTime 型として返すか、入力を解析できない場合は NULL を返します。DateTime または NULL
例
使用例
parseDateTimeBestEffortUSOrZero
導入バージョン: v1.1
parseDateTimeBestEffortUS 関数と同様ですが、処理できない日付形式に遭遇した場合は、ゼロ日付(1970-01-01)または時刻付きゼロ日付(1970-01-01 00:00:00)を返す点が異なります。
この関数は ISO 日付形式に対しては parseDateTimeBestEffort と同様に動作しますが、あいまいなケースでは米国式の日付形式を優先し、パースエラー時にはゼロを返します。
構文
引数
戻り値
US 形式を優先して time_string を DateTime として返します。入力をパースできない場合はゼロの日付/日時(1970-01-01 または 1970-01-01 00:00:00)を返します。DateTime
例
使用例
parseDateTimeInJodaSyntax
導入バージョン: v23.3
Joda の日付フォーマット文字列に従って、日付時刻文字列を構文解析します。
この関数は formatDateTimeInJodaSyntax の逆関数です。
Joda 形式のフォーマット文字列を使用して String 引数を構文解析します。戻り値は DateTime 型です。
フォーマットパターンについては Joda Time のドキュメント を参照してください。
構文
引数
time_string—DateTimeに変換される解析対象の文字列。Stringformat—time_stringの解析方法を指定する Joda 構文のフォーマット文字列。Stringtimezone— 省略可。タイムゾーン。String
戻り値
Joda スタイルのフォーマット文字列に従って、入力文字列から解析した DateTime を返します。DateTime
例
使用例
parseDateTimeInJodaSyntaxOrNull
導入バージョン: v23.3
parseDateTimeInJodaSyntax と同様ですが、パースできない日付形式に遭遇した場合は NULL を返します。
構文
引数
time_string—DateTimeにパースする対象の文字列。Stringformat—time_stringのパース方法を指定する、Joda 構文のフォーマット文字列。Stringtimezone— オプション。タイムゾーン。String
戻り値
入力文字列をパースして得られた DateTime を返し、パースに失敗した場合は NULL を返します。Nullable(DateTime)
例
使用例
parseDateTimeInJodaSyntaxOrZero
導入バージョン: v23.3
parseDateTimeInJodaSyntax と同様ですが、解析できない日付形式に遭遇した場合はゼロ日付を返します。
構文
引数
time_string— DateTime に変換するための文字列。Stringformat—time_stringの解析方法を指定する Joda 構文のフォーマット文字列。Stringtimezone— 任意。タイムゾーン。String
返される値
入力文字列から解析された DateTime、または解析に失敗した場合はゼロの DateTime 値を返します。DateTime
例
使用例
parseDateTimeOrNull
導入: v23.3
parseDateTime と同様ですが、解析できない日付形式に遭遇した場合は NULL を返します。
構文
別名: str_to_date
引数
time_string— DateTime に解析する文字列。Stringformat—time_stringをどのように解析するかを指定するフォーマット文字列。Stringtimezone— 省略可能。タイムゾーン。String
返り値
入力文字列を解析して得られた DateTime を返します。解析に失敗した場合は NULL を返します。Nullable(DateTime)
例
使用例
parseDateTimeOrZero
導入バージョン: v23.3
parseDateTime と同様ですが、解析できない日付時刻形式を検出した場合はゼロ日時を返します。
構文
引数
time_string—DateTimeとして解釈する文字列。Stringformat—time_stringの解析方法を指定するフォーマット文字列。Stringtimezone— 省略可能。タイムゾーン。String
戻り値
入力文字列から解析された DateTime を返します。解析に失敗した場合はゼロ値の DateTime を返します。DateTime
例
使用例
reinterpret
導入バージョン: v1.1
指定された値 x のメモリ上のバイト列をそのまま使用し、変換先の型として再解釈します。
構文
引数
戻り値
変換先の型の値。Any
例
使用例
配列の例
reinterpretAsDate
導入バージョン: v1.1
入力値を、Unix エポック 1970-01-01 の開始時点からの経過日数を表す Date 値として(リトルエンディアン順であると仮定して)再解釈します。
構文
引数
x— Unix エポックの開始からの経過日数。(U)Int*またはFloat*またはDateまたはDateTimeまたはUUIDまたはStringまたはFixedString
戻り値
日付。Date
例
使用例
reinterpretAsDateTime
導入バージョン: v1.1
入力値を DateTime 値として再解釈します(リトルエンディアンでの格納を想定)。Unix エポックである 1970-01-01 の開始時点からの経過日数として扱われます。
構文
引数
x— Unix エポックの開始からの経過秒数。(U)Int*またはFloat*またはDateまたはDateTimeまたはUUIDまたはStringまたはFixedStringのいずれか
戻り値
日付と時刻。DateTime
例
使用例
reinterpretAsFixedString
導入バージョン: v1.1
入力値を固定長の文字列として再解釈します(リトルエンディアン順を仮定します)。 末尾のヌルバイトは無視されます。たとえば、この関数は UInt32 値 255 に対して、1 文字だけから成る文字列を返します。
構文
引数
返される値
x を表すバイト列を含む固定長文字列。FixedString
例
使用例
reinterpretAsFloat32
導入バージョン: v1.1
入力値を Float32 型として再解釈します。
CAST と異なり、この関数は元の値を保持しようとしません。対象の型が入力値を表現できない場合、出力は未定義です。
構文
引数
戻り値
再解釈された x の値を返します。Float32
例
使用例
reinterpretAsFloat64
導入: v1.1
入力値を Float64 型の値として再解釈します。
CAST と異なり、この関数は元の値の保持を試みません。対象の型で入力値を表現できない場合、結果は未定義です。
構文
引数
戻り値
再解釈された値 x を返します。Float64
例
使用例
reinterpretAsInt128
導入バージョン: v1.1
入力値を Int128 型の値として再解釈します。
CAST と異なり、この関数は元の値を保持しようとしません。変換先の型が入力の型を表現できない場合、出力は未定義になります。
構文
引数
戻り値
再解釈された x の値を返します。Int128
例
使用例
reinterpretAsInt16
導入バージョン: v1.1
入力値を型 Int16 の値として再解釈します。
CAST と異なり、この関数は元の値を保持しようとはしません。対象の型で入力値を表現できない場合、結果は未定義です。
構文
引数
戻り値
x を Int16 型として再解釈した値を返します。Int16
例
使用例
reinterpretAsInt256
導入バージョン: v1.1
入力値を Int256 型の値として再解釈します。
CAST と異なり、この関数は元の値を保持しようとしません。対象の型が入力の値を表現できない場合、出力は未定義です。
構文
引数
戻り値
再解釈された値 x を返します。Int256
例
使用例
reinterpretAsInt32
導入バージョン: v1.1
入力値を Int32 型の値として再解釈します。
CAST と異なり、この関数は元の値の保持を試みません。対象の型が入力の値を表現できない場合、結果は未定義です。
構文
引数
返される値
再解釈された x の値を返します。型は Int32 です。
例
使用例
reinterpretAsInt64
導入バージョン: v1.1
入力値を Int64 型の値として再解釈します。
CAST と異なり、この関数は元の値を保持しようとはしません。対象の型が入力値を表現できない場合、出力は未定義です。
構文
引数
戻り値
再解釈後の値 x を返します。Int64
例
使用例
reinterpretAsInt8
導入バージョン: v1.1
入力値を Int8 型として再解釈します。
CAST と異なり、この関数は元の値を保持しようとはしません。対象の型が入力の値を表現できない場合、出力は未定義となります。
構文
引数
戻り値
再解釈された値 x を返します。型は Int8 です。
例
使用例
reinterpretAsString
導入バージョン: v1.1
入力値を文字列として再解釈します(バイト順はリトルエンディアンを前提とします)。 末尾のヌルバイトは無視されます。たとえば、UInt32 値 255 に対しては、1 文字だけからなる文字列を返します。
構文
引数
戻り値
x のバイト表現を含む文字列。String
例
使用例
reinterpretAsUInt128
導入: v1.1
入力値を型 UInt128 の値として再解釈します。
CAST とは異なり、この関数は元の値を保持しようとしません。対象の型が入力値を表現できない場合、出力は未定義です。
構文
引数
返り値
再解釈された値 x を返します。UInt128
例
使用例
reinterpretAsUInt16
導入バージョン: v1.1
入力値を UInt16 型の値として再解釈します。
CAST と異なり、この関数は元の値を保持しようとはしません。ターゲット型が入力値を表現できない場合、出力は未定義となります。
構文
引数
x— UInt16 として再解釈する対象の値。(U)Int*またはFloat*またはDateまたはDateTimeまたはUUIDまたはStringまたはFixedString
戻り値
再解釈された x の値を返します。UInt16
例
使用例
reinterpretAsUInt256
導入バージョン: v1.1
入力値を UInt256 型の値として再解釈します。
CAST と異なり、この関数は元の値を保持しようとしません。ターゲット型で入力値を表現できない場合、出力は未定義です。
構文
引数
戻り値
再解釈後の値 x を返します。型は UInt256 です。
例
使用例
reinterpretAsUInt32
導入バージョン: v1.1
入力値を UInt32 型として再解釈します。
CAST と異なり、この関数は元の値を保持しようとしません。変換先の型が入力値を表現できない場合、出力は未定義です。
構文
引数
返り値
再解釈した値 x を返します。UInt32
例
使用例
reinterpretAsUInt64
導入バージョン: v1.1
入力値を UInt64 型の値として再解釈します。
CAST と異なり、この関数は元の値の保持を試みません。対象の型が入力値の型を表現できない場合、結果は未定義です。
構文
引数
x— UInt64 型として再解釈する値。Int*またはUInt*またはFloat*またはDateまたはDateTimeまたはUUIDまたはStringまたはFixedString
戻り値
x を再解釈した値を返します。UInt64
例
使用例
reinterpretAsUInt8
導入バージョン: v1.1
入力値を UInt8 型の値として再解釈します。
CAST と異なり、この関数は元の値を保持しようとしません。対象の型が入力値を表現できない場合、出力は未定義です。
構文
引数
返り値
再解釈された値 x を返します。型は UInt8 です。
例
使用例
reinterpretAsUUID
導入: v1.1
16 バイトの文字列を受け取り、各 8 バイトの部分をリトルエンディアンのバイト順として解釈して UUID を返します。文字列が十分な長さでない場合、この関数は末尾に不足分のヌルバイトがパディングされたかのように動作します。文字列が 16 バイトより長い場合、末尾の余分なバイトは無視されます。
構文
引数
fixed_string— ビッグエンディアンのバイト列。FixedString
戻り値
UUID 型の値。UUID
例
String から UUID への変換
toBFloat16
導入バージョン: v1.1
入力値を BFloat16 型の値に変換します。 エラーが発生した場合は例外をスローします。
関連項目:
構文
引数
expr— 数値、または数値の文字列表現を返す式。Expression
返される値
16 ビットの brain-float 値を返します。 BFloat16
例
使用例
toBFloat16OrNull
導入バージョン: v1.1
String 型の入力値を BFloat16 型の値に変換します。
文字列が浮動小数点値を表していない場合、この関数は NULL を返します。
サポートされる引数:
- 数値を表す文字列。
サポートされない引数(NULL を返す):
- 2 進数および 16 進数を表す文字列。
- 数値型の値。
この関数は、文字列表現からの変換時に精度が暗黙的に失われることを許容します。
関連項目:
構文
引数
x— 数値を表す文字列。String
返される値
16 ビットの bfloat16 値を返し、それ以外の場合は NULL。BFloat16 または NULL
例
使用例
toBFloat16OrZero
導入バージョン: v1.1
String 型の入力値を BFloat16 型の値に変換します。 文字列が浮動小数点値を表していない場合、この関数はゼロを返します。
サポートされる引数:
- 数値を表す文字列表現。
サポートされない引数(0 を返す):
- 2 進数および 16 進数を表す文字列表現。
- 数値型の値。
この関数では、文字列表現からの変換時に精度が失われてもエラーにはなりません。
関連項目:
構文
引数
x— 数値を表す文字列。String
戻り値
16ビットの brain-float 値を返し、それ以外の場合は 0 を返します。BFloat16
例
使用例
toBool
導入: v22.2
入力値を Bool 型に変換します。
構文
引数
expr— 数値または文字列を返す式。文字列の場合は、'true' または 'false'(大文字小文字は区別しない)を受け取ります。(U)Int*またはFloat*またはStringまたはExpression
戻り値
引数の評価結果に応じて true または false を返します。Bool
例
使用例
toDate
導入バージョン: v1.1
入力値を型 Date に変換します。
String、FixedString、DateTime、数値型からの変換をサポートします。
構文
引数
x— 変換する入力値。StringまたはFixedStringまたはDateTimeまたは(U)Int*またはFloat*
戻り値
変換後の値を返します。Date
例
String から Date への変換
DateTime を Date に変換
整数を日付に変換
toDate32
導入バージョン: v21.9
引数を Date32 データ型に変換します。
値が範囲外の場合、toDate32 は Date32 でサポートされている境界値を返します。
引数が Date 型の場合は、その型の範囲制約が考慮されます。
構文
引数
戻り値
カレンダー上の日付を返します。Date32
例
範囲内の例
範囲外
toDate32OrDefault
導入バージョン: v21.11
引数を Date32 データ型に変換します。値が範囲外の場合、toDate32OrDefault は Date32 でサポートされている下限値を返します。引数が Date 型の場合は、その型の範囲制限も考慮されます。不正な引数が渡された場合はデフォルト値を返します。
構文
引数
戻り値
成功した場合は Date32 型の値を返し、失敗した場合はデフォルト値が指定されていればそれを、指定されていなければ 1900-01-01 を返します。Date32
例
変換が成功する例
変換失敗
toDate32OrNull
導入バージョン: v21.9
入力値を Date32 型の値に変換しますが、無効な引数を受け取った場合は NULL を返します。
toDate32 と同様ですが、無効な引数を受け取った場合に NULL を返す点が異なります。
構文
引数
x— 日付の文字列表現を含む文字列。String
戻り値
処理が成功した場合は Date32 の値を返し、そうでない場合は NULL を返します。Date32 または NULL
例
使用例
toDate32OrZero
導入: v21.9
入力値を Date32 型の値に変換しますが、無効な引数が渡された場合は Date32 の下限値を返します。 toDate32 と同様に動作しますが、無効な引数が渡された場合は Date32 の下限値を返します。
関連項目:
構文
引数
x— 日付の文字列表現。String
戻り値
成功した場合は Date32 型の値を返し、それ以外の場合は Date32 の下限値(1900-01-01)を返します。Date32
例
使用例
toDateOrDefault
導入バージョン: v21.11
toDate と同様ですが、変換に失敗した場合はデフォルト値を返します。デフォルト値は第 2 引数が指定されていればその値、指定されていなければ Date 型の下限値です。
構文
引数
戻り値
変換に成功した場合は型 Date の値を返し、失敗した場合は指定されていればデフォルト値を、指定されていなければ 1970-01-01 を返します。Date
例
変換が成功する例
変換に失敗
toDateOrNull
導入バージョン: v1.1
入力値を Date 型の値に変換しますが、不正な引数が渡された場合は NULL を返します。
toDate と同様ですが、不正な引数が渡された場合に NULL を返します。
構文
引数
x— 日付を表す文字列。String
戻り値
成功した場合は Date の値を返し、それ以外の場合は NULL を返します。
例
使用例
toDateOrZero
導入バージョン: v1.1
入力値をDate型の値に変換しますが、無効な引数が渡された場合はDate型の下限値を返します。
toDateと同様の動作をしますが、無効な引数が渡された場合にDate型の下限値を返します。
関連項目:
構文
引数
x— 日付を表す文字列。String
戻り値
成功した場合は Date 型の値を返し、失敗した場合は Date 型の下限値(1970-01-01)を返します。Date
例
使用例
toDateTime
導入: v1.1
入力値を型 DateTime に変換します。
expr が数値の場合、Unix エポックの開始からの経過秒数(Unix タイムスタンプ)として解釈されます。
expr が String の場合、Unix タイムスタンプ、または日付 / 日付と時刻の文字列表現として解釈されることがあります。
そのため、短い数値文字列(4桁以下)のパースは曖昧さのため明示的に無効化されています。たとえば、文字列 '1999' は、年(Date / DateTime の不完全な文字列表現)にも、Unix タイムスタンプにもなり得ます。より長い数値文字列は許可されます。
構文
引数
戻り値
日時を返します。DateTime
例
使用例
toDateTime32
導入バージョン: v20.9
入力値を DateTime 型に変換します。
String、FixedString、Date、Date32、DateTime、または数値型((U)Int*、Float*、Decimal)からの変換をサポートします。
DateTime32 は DateTime と比較してより広い範囲を扱うことができ、1900-01-01 から 2299-12-31 までの日付をサポートします。
構文
引数
x— 変換する入力値。StringまたはFixedStringまたはUInt*またはFloat*またはDateまたはDateTimeまたはDateTime64timezone— 省略可能。返されるDateTime値のタイムゾーンを表します。String
返される値
変換後の値を返します。DateTime
例
値が範囲内にある場合
指定した精度の10進数として
タイムゾーン付き
toDateTime64
導入バージョン: v20.1
入力値を DateTime64 型に変換します。
構文
引数
expr— 数値、または数値を表す文字列を返す式です。Expressionscale— ティックサイズ(精度)。10^(-scale) 秒です。UInt8timezone— 省略可能。指定されたDateTime64オブジェクトのタイムゾーンです。String
戻り値
サブ秒精度を持つ日付と時刻を返します。DateTime64
使用例
値が範囲内の場合
精度指定付きの Decimal として
タイムゾーン付き
toDateTime64OrDefault
導入バージョン: v21.11
toDateTime64 と同様に、この関数は入力値を DateTime64 型の値に変換しますが、 無効な引数が渡された場合には、DateTime64 のデフォルト値 または指定されたデフォルト値を返します。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Stringまたは(U)Int*またはFloat*scale— ティックサイズ(精度):10^-precision 秒。UInt8timezone— 省略可能。タイムゾーン。Stringdefault— 省略可能。解析に失敗した場合に返すデフォルト値。DateTime64
戻り値
成功した場合は DateTime64 型の値を返します。失敗した場合は、デフォルト値が指定されていればその値を、指定されていなければ 1970-01-01 00:00:00.000 を返します。DateTime64
使用例
成功した変換の例
変換に失敗した例
toDateTime64OrNull
導入バージョン: v20.1
入力値を DateTime64 型の値に変換しますが、無効な引数が指定された場合は NULL を返します。
toDateTime64 と同様ですが、無効な引数が指定された場合は NULL を返します。
構文
引数
x— 時刻およびサブ秒精度を含む日時の文字列表現。String
戻り値
成功した場合は DateTime64 型の値を返し、そうでない場合は NULL を返します。DateTime64 または NULL
例
使用例
toDateTime64OrZero
導入: v20.1
入力値を DateTime64 型の値に変換しますが、不正な引数が指定された場合は DateTime64 の最小値を返します。 これは toDateTime64 と同様ですが、不正な引数が指定された場合に DateTime64 の最小値を返します。
参照:
構文
引数
x— サブ秒精度付きの日時を表す文字列。String
戻り値
成功した場合は DateTime64 型の値を返し、失敗した場合は DateTime64 型の下限値(1970-01-01 00:00:00.000)を返します。DateTime64
例
使用例
toDateTimeOrDefault
導入バージョン: v21.11
toDateTime と同様ですが、変換に失敗した場合はデフォルト値を返します。デフォルト値は、第 3 引数が指定されていればその値、指定されていなければ DateTime の下限値になります。
構文
引数
expr— 数値、または数値の文字列表現を返す式。Stringまたは(U)Int*またはFloat*timezone— 省略可。タイムゾーン。Stringdefault— 省略可。パースに失敗した場合に返されるデフォルト値。DateTime
戻り値
成功した場合は DateTime 型の値を返し、失敗した場合は指定されたデフォルト値を返します。デフォルト値が指定されていない場合は 1970-01-01 00:00:00 を返します。DateTime
例
変換成功の例
変換に失敗
toDateTimeOrNull
導入バージョン: v1.1
入力値を DateTime 型に変換しますが、無効な引数が渡された場合は NULL を返します。
toDateTime と同様ですが、無効な引数が渡された場合は NULL を返します。
構文
引数
x— 日時を表す文字列。String
戻り値
成功した場合は DateTime 値、そうでない場合は NULL を返します。DateTime または NULL
例
使用例
toDateTimeOrZero
導入バージョン: v1.1
入力値を DateTime 型の値に変換します。不正な引数が渡された場合は DateTime の下限値を返します。 toDateTime と同様ですが、不正な引数が渡された場合には DateTime の下限値を返します。
構文
引数
x— 日時の文字列表現。String
戻り値
成功した場合は DateTime 型の値を返し、失敗した場合は DateTime の最小値(1970-01-01 00:00:00)を返します。DateTime
例
使用例
toDecimal128
導入: v18.12
入力値をスケール S を持つ Decimal(38, S) 型の値に変換します。
エラーが発生した場合は例外をスローします。
サポートされる引数:
- 型 (U)Int* の値、またはその文字列表現。
- 型 Float* の値、またはその文字列表現。
サポートされない引数:
- Float* 値
NaNおよびInf(大文字小文字は区別しない)の値、またはその文字列表現。 - 2 進数および 16 進数値の文字列表現(例:
SELECT toDecimal128('0xc0fe', 1);)。
expr の値が Decimal128 の範囲 (-1*10^(38 - S), 1*10^(38 - S)) を超える場合、オーバーフローが発生する可能性があります。
小数部分の桁数が多すぎる場合は、余分な桁は切り捨てられます(丸めは行いません)。
整数部分の桁数が多すぎる場合は、例外が発生します。
変換時には余分な桁が切り捨てられ、Float32/Float64 の入力に対しては浮動小数点命令を用いて演算が行われるため、予期しない動作になる可能性があります。
例えば、toDecimal128(1.15, 2) の結果は 1.14 になります。これは浮動小数点での 1.15 * 100 が 114.99 となるためです。
演算で内部の整数型を使用するようにするには、String 型の入力を使用できます: toDecimal128('1.15', 2) = 1.15
構文
引数
expr— 数値、または数値の文字列表現を返す式。ExpressionS— 0 から 38 の間のスケールパラメータ。数値の小数部として保持できる桁数を指定します。UInt8
返される値
型 Decimal(38, S) の値を返します。Decimal128(S)
例
使用例
toDecimal128OrDefault
導入: v21.11
toDecimal128 と同様に、この関数は入力値を Decimal(38, S) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
構文
引数
expr— 数値を表す文字列表現。StringS— 0 から 38 の間のスケールパラメーター。数値の小数部に許容される桁数を指定します。UInt8default— オプション。Decimal128(S) 型への変換に失敗した場合に返すデフォルト値。Decimal128(S)
戻り値
変換に成功した場合は Decimal(38, S) 型の値を返します。失敗した場合は、指定されていればデフォルト値を、指定されていなければ 0 を返します。Decimal128(S)
使用例
変換が成功する例
変換失敗
toDecimal128OrNull
導入バージョン: v20.1
入力値を型 Decimal(38, S) の値に変換しますが、エラー時には NULL を返します。
toDecimal128 と同様ですが、変換エラー時に例外をスローする代わりに NULL を返します。
サポートされる引数:
- 型 (U)Int* の値、またはその文字列表現。
- 型 Float* の値、またはその文字列表現。
サポートされない引数(NULL を返す):
- Float* 型の
NaNおよびInf(大文字小文字は区別しない)の値、またはその文字列表現。 - 2 進数および 16 進数値の文字列表現。
Decimal128の範囲(-1*10^(38 - S), 1*10^(38 - S))を超える値。
関連項目:
構文
引数
expr— 数値、または数値の文字列表現を返す式。ExpressionS— 0 から 38 の間のスケールパラメータ。数値の小数部が持てる桁数を指定します。UInt8
返される値
成功した場合は Decimal(38, S) の値、それ以外の場合は NULL を返します。Decimal128(S) または NULL
例
使用例
toDecimal128OrZero
導入バージョン: v20.1
入力値を型 Decimal(38, S) の値に変換しますが、エラー時には 0 を返します。
toDecimal128 と同様ですが、変換エラー時に例外をスローする代わりに 0 を返します。
サポートされる引数:
- (U)Int* 型の値、またはその文字列表現。
- Float* 型の値、またはその文字列表現。
サポートされない引数(0 を返す):
- Float* 型の
NaNおよびInf値、またはそれらの文字列表現(大文字小文字は区別しない)。 - 2進数および16進数値の文字列表現。
入力値が Decimal128 の範囲 (-1*10^(38 - S), 1*10^(38 - S)) を超える場合、この関数は 0 を返します。
構文
引数
expr— 数値、または数値の文字列表現を返す式。ExpressionS— 0 から 38 の範囲のスケールパラメーター。数値の小数部が持つことができる桁数を指定します。UInt8
戻り値
変換に成功した場合は Decimal(38, S) の値を返し、そうでない場合は 0 を返します。Decimal128(S)
例
基本的な使用方法
toDecimal256
導入バージョン: v20.8
入力値を、スケール S を持つ Decimal(76, S) 型の値に変換します。エラーが発生した場合は例外をスローします。
サポートされる引数:
- 型が (U)Int* の値、またはその文字列表現。
- 型が Float* の値、またはその文字列表現。
サポートされない引数:
- Float* 型の値
NaNおよびInf(大文字・小文字は区別しません)、またはその文字列表現。 - 2 進数および 16 進数値の文字列表現。例:
SELECT toDecimal256('0xc0fe', 1);。
expr の値が Decimal256 の範囲 (-1*10^(76 - S), 1*10^(76 - S)) を超えると、オーバーフローが発生する可能性があります。
小数部に過剰な桁がある場合、それらは切り捨てられます(四捨五入はされません)。
整数部に過剰な桁がある場合は例外が発生します。
変換では余分な桁が切り捨てられ、演算が浮動小数点命令を用いて実行されるため、Float32/Float64 の入力を扱う場合に予期しない動作をすることがあります。
例えば、toDecimal256(1.15, 2) は 1.14 と等しくなります。これは、浮動小数点では 1.15 * 100 が 114.99 となるためです。
String を入力として使用することで、演算に内部の整数型を用いることができます: toDecimal256('1.15', 2) = 1.15
構文
引数
expr— 数値、または数値を表す文字列を返す式。ExpressionS— 0〜76 の範囲のスケールパラメータで、数値の小数部が取りうる桁数を指定します。UInt8
戻り値
型 Decimal(76, S) の値を返します。Decimal256(S)
例
使用例
toDecimal256OrDefault
導入バージョン: v21.11
toDecimal256 と同様に、この関数は入力値を型 Decimal(76, S) の値に変換しますが、エラーが発生した場合にはデフォルト値を返します。
構文
引数
expr— 数値の文字列表現。StringS— 0 から 76 の間のスケールパラメーター。数値の小数部が取り得る桁数を指定します。UInt8default— オプション。文字列を Decimal256(S) 型にパースする際に失敗した場合に返すデフォルト値。Decimal256(S)
戻り値
成功した場合は Decimal(76, S) 型の値を返します。失敗した場合は、デフォルト値が指定されていればそれを返し、指定されていなければ 0 を返します。Decimal256(S)
使用例
正常に変換できる場合
変換失敗
toDecimal256OrNull
導入バージョン: v20.8
入力値を型 Decimal(76, S) の値に変換しますが、エラーが発生した場合は NULL を返します。
toDecimal256 と似ていますが、変換エラー時に例外をスローする代わりに NULL を返します。
サポートされる引数:
- 型 (U)Int* の値、またはその文字列表現。
- 型 Float* の値、またはその文字列表現。
サポートされない引数(NULL を返す):
- Float* 値
NaNおよびInfの文字列表現(大文字小文字を区別しない)。 - 2進数および16進数値の文字列表現。
Decimal256の範囲を超える値:(-1 * 10^(76 - S), 1 * 10^(76 - S))。
関連項目:
構文
引数
expr— 数値、または数値の文字列表現を返す式。ExpressionS— 0 から 76 の間のスケールを表すパラメータで、数値の小数部が持つことができる桁数を指定します。UInt8
戻り値
変換に成功した場合は Decimal(76, S) の値を返し、それ以外の場合は NULL を返します。Decimal256(S) または NULL
例
使用例
toDecimal256OrZero
導入バージョン: v20.8
入力値を型 Decimal(76, S) の値に変換しますが、エラーが発生した場合は 0 を返します。
toDecimal256 と同様ですが、変換エラー時に例外をスローする代わりに 0 を返します。
サポートされる引数:
- 型 (U)Int* の値、またはその文字列表現。
- 型 Float* の値、またはその文字列表現。
サポートされない引数(0 を返す):
- Float* 型の
NaNおよびInfの値、またはそれらの文字列表現(大文字小文字は区別しない)。 - 2 進数および 16 進数の値の文字列表現。
入力値が Decimal256 の範囲 (-1*10^(76 - S), 1*10^(76 - S)) を超える場合、関数は 0 を返します。
参照:
構文
引数
expr— 評価結果として数値、または数値の文字列表現を返す式。ExpressionS— 0〜76 の範囲のスケールパラメータで、数値の小数部が取り得る桁数を指定します。UInt8
返される値
成功した場合は Decimal(76, S) 型の値を返し、失敗した場合は 0 を返します。Decimal256(S)
例
使用例
toDecimal32
導入バージョン: v18.12
入力値を、スケール S を持つ型 Decimal(9, S) の値に変換します。エラーが発生した場合は例外をスローします。
サポートされる引数:
- 型 (U)Int* の値、またはその文字列表現。
- 型 Float* の値、またはその文字列表現。
サポートされない引数:
- Float* の
NaNおよびInfの値、またはその文字列表現(大文字小文字は区別されません)。 - 2 進数および 16 進数値の文字列表現。例:
SELECT toDecimal32('0xc0fe', 1);。
expr の値が Decimal32 の範囲 (-1*10^(9 - S), 1*10^(9 - S)) を超えると、オーバーフローが発生する可能性があります。
小数部で桁数が多すぎる場合、その余分な桁は切り捨てられます(四捨五入はされません)。
整数部で桁数が多すぎる場合は、例外が発生します。
変換時に余分な桁は切り捨てられ、Float32/Float64 入力を扱う場合、演算が浮動小数点命令で実行されるため、想定外の動作をする可能性があります。
例えば、toDecimal32(1.15, 2) は 1.14 と等しくなります。これは浮動小数点において 1.15 * 100 が 114.99 となるためです。
String 型の入力を使用すると、演算は内部の整数型を利用して行われます: toDecimal32('1.15', 2) = 1.15
構文
引数
expr— 数値、または数値の文字列表現を返す式。ExpressionS— 0 から 9 の間のスケールパラメータで、数値の小数部に許容される桁数を指定します。UInt8
戻り値
戻り値の型は Decimal(9, S)(Decimal32(S))です。
例
使用例
toDecimal32OrDefault
導入バージョン: v21.11
toDecimal32 と同様に、この関数は入力値を Decimal(9, S) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
構文
引数
expr— 数値を表す文字列。StringS— 0 から 9 の間のスケールパラメータ。数値の小数部が取り得る桁数の上限を指定します。UInt8default— 省略可能。型 Decimal32(S) への変換に失敗した場合に返すデフォルト値。Decimal32(S)
戻り値
成功した場合は型 Decimal(9, S) の値を返します。失敗した場合は、デフォルト値が渡されていればその値を、渡されていなければ 0 を返します。Decimal32(S)
例
変換が成功する例
変換が失敗した場合
toDecimal32OrNull
導入バージョン: v20.1
入力値を Decimal(9, S) 型の値に変換しますが、エラー時には NULL を返します。
toDecimal32 と同様ですが、変換エラー時に例外をスローする代わりに NULL を返します。
サポートされる引数:
- 型 (U)Int* の値、またはその文字列表現。
- 型 Float* の値、またはその文字列表現。
サポートされない引数(NULL を返す):
- Float* 値
NaNおよびInf、またはそれらの文字列表現(大文字小文字を区別しない)。 - 2 進数および 16 進数値の文字列表現。
Decimal32の範囲を超える値:(-1*10^(9 - S), 1*10^(9 - S))。
関連項目:
構文
引数
expr— 数値、または数値を表す文字列を返す式。ExpressionS— 0 から 9 の範囲のスケールパラメータで、数値の小数部に許容される桁数を指定します。UInt8
戻り値
成功すると Decimal(9, S) の値を返し、そうでない場合は NULL を返します。Decimal32(S) または NULL
例
使用例
toDecimal32OrZero
導入バージョン: v20.1
入力値を型 Decimal(9, S) の値に変換しますが、エラー時には 0 を返します。
toDecimal32 と同様ですが、変換エラー時に例外をスローする代わりに 0 を返します。
サポートされる引数:
- 型 (U)Int* の値、またはその文字列表現。
- 型 Float* の値、またはその文字列表現。
サポートされない引数(0 を返す):
- 型 Float* の
NaNおよびInfの値(大文字小文字は問わない)、またはその文字列表現。 - バイナリ値および 16 進数値の文字列表現。
入力値が Decimal32 の範囲 (-1*10^(9 - S), 1*10^(9 - S)) を超える場合、この関数は 0 を返します。
構文
引数
expr— 数値または数値を表す文字列を返す式です。ExpressionS— 0 ~ 9 の範囲のスケールパラメーターで、数値の小数部が持つことのできる桁数を指定します。UInt8
返される値
成功した場合は Decimal(9, S) 型の値を返し、そうでない場合は 0 を返します。Decimal32(S)
例
使用例
toDecimal64
導入: v18.12
入力値をスケール S を持つ Decimal(18, S) 型の値に変換します。
エラーが発生した場合は例外をスローします。
サポートされる引数:
- 型 (U)Int* の値、またはその文字列表現。
- 型 Float* の値、またはその文字列表現。
サポートされない引数:
- Float* の
NaNおよびInfの値、またはそれらの文字列表現(大文字小文字は区別しません)。 - 2進数および16進数値の文字列表現。例:
SELECT toDecimal64('0xc0fe', 1);。
expr の値が Decimal64 の範囲 (-1*10^(18 - S), 1*10^(18 - S)) を超える場合、オーバーフローが発生する可能性があります。
小数部分の桁数が多すぎる場合は、その余分な桁は切り捨てられます(四捨五入はされません)。
整数部分の桁数が多すぎる場合は、例外が発生します。
変換では余分な桁が切り捨てられ、演算が浮動小数点命令で実行されるため、Float32/Float64 の入力を扱う際に予期しない動作になる可能性があります。
たとえば、toDecimal64(1.15, 2) は 1.14 と等しくなります。これは、浮動小数点における 1.15 * 100 が 114.99 となるためです。
内部の整数型を使って演算を行うには、文字列入力を使用できます: toDecimal64('1.15', 2) = 1.15
構文
引数
expr— 数値、または数値の文字列表現を返す式。ExpressionS— 0 から 18 までのスケールパラメータで、数値の小数部が持てる桁数を指定します。UInt8
戻り値
Decimal 型の値を返します。Decimal(18, S)
例
使用例
toDecimal64OrDefault
導入バージョン: v21.11
toDecimal64 と同様に、この関数は入力値を Decimal(18, S) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
構文
引数
expr— 数値の文字列表現。StringS— 0 から 18 の間のスケールパラメーター。数値の小数部が取りうる桁数を指定します。UInt8default— 省略可能。型 Decimal64(S) への変換に失敗した場合に返すデフォルト値。Decimal64(S)
返される値
成功した場合は Decimal(18, S) 型の値を返します。失敗した場合は、デフォルト値が指定されていればその値を、指定されていなければ 0 を返します。Decimal64(S)
例
変換が成功する例
変換に失敗
toDecimal64OrNull
導入バージョン: v20.1
入力値を型 Decimal(18, S) の値に変換しますが、エラーが発生した場合は NULL を返します。
toDecimal64 と同様ですが、変換エラー時に例外をスローする代わりに NULL を返します。
サポートされる引数:
- 型 (U)Int* の値、またはその文字列表現。
- 型 Float* の値、またはその文字列表現。
サポートされない引数(NULL を返す):
- Float* 型値
NaNおよびInfの文字列表現(大文字・小文字を区別しない)。 - 2 進数および 16 進数値の文字列表現。
Decimal64の範囲(-1*10^(18 - S), 1*10^(18 - S))を超える値。
参照:
構文
引数
expr— 数値、または数値の文字列表現を返す式。ExpressionS— 0〜18 の範囲のスケールパラメータで、数値の小数部が取りうる桁数を指定します。UInt8
戻り値
成功した場合は Decimal(18, S) 型の値を返し、それ以外の場合は NULL を返します。Decimal64(S) または NULL
例
使用例
toDecimal64OrZero
導入バージョン: v20.1
入力値を Decimal(18, S) 型の値に変換します。エラーの場合は 0 を返します。
toDecimal64 と同様ですが、変換エラー時に例外をスローする代わりに 0 を返します。
サポートされる引数:
- 型 (U)Int* の値、またはその文字列表現。
- 型 Float* の値、またはその文字列表現。
サポートされない引数(0 を返す):
- Float* 値
NaNおよびInfの文字列表現(大文字小文字を区別しません)。 - 2進数および16進数値の文字列表現。
入力値が Decimal64 の範囲 (-1*10^(18 - S), 1*10^(18 - S)) を超える場合、この関数は 0 を返します。
関連項目:
構文
引数
expr— 数値または数値の文字列表現を返す式。ExpressionS— 0 から 18 の範囲のスケールパラメータで、数値の小数部として持てる桁数を指定します。UInt8
返される値
成功した場合は Decimal(18, S) 型の値を返し、失敗した場合は 0 を返します。Decimal64(S)
例
使用例
toDecimalString
導入バージョン: v23.3
数値を、指定した小数点以下の桁数を持つ String に変換します。
この関数は、入力値を指定された小数点以下の桁数に丸めます。入力値の小数点以下の桁数が要求された桁数より少ない場合、結果は指定された小数点以下の桁数ちょうどになるように末尾がゼロで埋められます。
構文
引数
number— 文字列に変換する数値。任意の数値型 (Int, UInt, Float, Decimal)、つまりInt8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt64、Float32、Float64、Decimalのいずれかを指定できます。scale— 小数部に表示する桁数。必要に応じて結果は丸められます。UInt8
戻り値
指定した小数桁数ちょうどの小数部を持つ数値の文字列表現を返します。String
例
数値を丸めてフォーマットする
ゼロ埋め
数値型の違い
toFixedString
導入されたバージョン: v1.1
String 引数を FixedString(N) 型(長さ N の固定長文字列)に変換します。
文字列のバイト数が N 未満の場合は、右側がヌルバイトで埋められます。 文字列のバイト数が N を超える場合は、例外がスローされます。
構文
引数
s— 変換対象の文字列。StringN— 返される FixedString の長さ。const UInt*
戻り値
長さ N の FixedString を返します。FixedString(N)
例
使用例
toFloat32
導入バージョン: v1.1
入力値を Float32 型の値に変換します。 エラーが発生した場合は例外をスローします。
サポートされている引数:
- (U)Int* 型の値。
- (U)Int8/16/32/128/256 の文字列表現。
NaNおよびInfを含む Float* 型の値。NaNおよびInfを含む Float* の文字列表現(大文字・小文字は区別しません)。
サポートされていない引数:
- 2進数および16進数の文字列表現(例:
SELECT toFloat32('0xc0fe');)。
関連項目:
構文
引数
expr— 数値または数値を表す文字列を返す式。Expression
戻り値
32 ビットの浮動小数点数を返します。Float32
例
使用例
toFloat32OrDefault
導入バージョン: v21.11
toFloat32 と同様に、この関数は入力値を Float32 型の値に変換しますが、エラーが発生した場合にはデフォルト値を返します。
default 値が指定されていない場合、エラー時には 0 が返されます。
構文
引数
返り値
変換に成功した場合は Float32 型の値を返し、失敗した場合は指定されていればデフォルト値を、指定されていなければ 0 を返します。Float32
例
変換が成功する例
変換に失敗
toFloat32OrNull
導入: v1.1
入力値を Float32 型の値に変換しますが、エラーが発生した場合は NULL を返します。
toFloat32 と同様ですが、変換エラー時に例外をスローする代わりに NULL を返します。
サポートされる引数:
- (U)Int* 型の値。
- (U)Int8/16/32/128/256 の文字列表現。
NaNおよびInfを含む Float* 型の値。NaNおよびInfを含む Float* の文字列表現(大文字・小文字を区別しない)。
サポートされない引数(NULL を返す):
- 2 進数および 16 進数値の文字列表現。例:
SELECT toFloat32OrNull('0xc0fe');。 - 無効な文字列形式。
関連項目:
構文
引数
x— 数値を表す文字列。String
戻り値
成功した場合は 32 ビットの浮動小数点数を返し、失敗した場合は NULL を返します。Float32 または NULL
例
使用例
toFloat32OrZero
導入: v1.1
入力値を Float32 型の値に変換しますが、エラーが発生した場合には 0 を返します。
toFloat32 と同様ですが、変換エラー時に例外をスローする代わりに 0 を返します。
関連項目:
構文
引数
x— 数値を表す文字列。String
戻り値
成功した場合は 32 ビットの Float 値を返し、失敗した場合は 0 を返します。Float32
例
使用例
toFloat64
導入バージョン: v1.1
入力値を Float64 型の値に変換します。
エラーが発生した場合は例外をスローします。
サポートされる引数:
- (U)Int* 型の値。
- (U)Int8/16/32/128/256 の文字列表現。
- Float* 型の値(
NaNおよびInfを含む)。 - Float* 型の文字列表現(
NaNおよびInfを含む。大文字小文字は区別しません)。
サポートされない引数:
- 2進数および16進数値の文字列表現(例:
SELECT toFloat64('0xc0fe');)。
関連項目:
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression
戻り値
64 ビット浮動小数点数を返します。Float64
例
使用例
toFloat64OrDefault
導入: v21.11
toFloat64 と同様に、この関数は入力値を Float64 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 値が指定されていない場合、エラー時には 0 が返されます。
構文
引数
戻り値
成功した場合は型 Float64 の値を返し、失敗した場合は default が指定されていればその値を、指定されていない場合は 0 を返します。Float64
例
変換が成功する例
変換に失敗
toFloat64OrNull
導入バージョン: v1.1
入力値を Float64 型の値に変換しますが、エラーが発生した場合は NULL を返します。
toFloat64 と同様ですが、変換エラー時に例外をスローする代わりに NULL を返します。
サポートされる引数:
- (U)Int* 型の値。
- (U)Int8/16/32/128/256 の文字列表現。
NaNおよびInfを含む Float* 型の値。NaNおよびInfを含む Float* 型の文字列表現(大文字小文字を区別しない)。
サポートされない引数(NULL を返す):
- バイナリ値および 16 進値の文字列表現。例:
SELECT toFloat64OrNull('0xc0fe');。 - 無効な文字列形式。
関連項目:
構文
引数
x— 数値の文字列表現。String
戻り値
変換に成功した場合は 64 ビットの Float 値を返し、失敗した場合は NULL を返します。Float64 または NULL
例
使用例
toFloat64OrZero
導入バージョン: v1.1
入力値を Float64 型の値に変換しますが、エラーが発生した場合は 0 を返します。
toFloat64 と同様ですが、変換エラー時に例外をスローする代わりに 0 を返します。
関連項目:
構文
引数
x— 数値を表す文字列。String
戻り値
成功した場合は 64 ビットの Float 値を返し、失敗した場合は 0 を返します。Float64
例
使用例
toInt128
導入バージョン: v1.1
入力値を型 Int128 の値に変換します。 エラーが発生した場合は例外をスローします。 この関数は 0 に向かう丸め(ゼロ方向への丸め)を行い、数値の小数桁を切り捨てます。
サポートされる引数:
- (U)Int* 型の値、またはその文字列表現。
- Float* 型の値。
サポートされない引数:
NaNやInfを含む、Float* 値の文字列表現。SELECT toInt128('0xc0fe');のような、バイナリ値および 16 進値の文字列表現。
入力値が Int128 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
関連項目:
構文
引数
expr— 数値、または数値の文字列表現を返す式。Expression
返される値
128 ビット整数値を返します。Int128
例
使用例
toInt128OrDefault
導入バージョン: v21.11
toInt128 と同様に、この関数は入力値を型 Int128 の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 値が指定されていない場合、エラー時には 0 が返されます。
構文
引数
戻り値
成功した場合は型 Int128 の値を返し、失敗した場合は指定されている場合はデフォルト値を、指定されていない場合は 0 を返します。Int128
例
変換が成功する例
変換に失敗
toInt128OrNull
導入されたバージョン: v20.8
toInt128 と同様に、この関数は入力値を Int128 型の値に変換しますが、エラーが発生した場合は NULL を返します。
サポートされる引数:
- (U)Int* の文字列表現。
サポートされない引数(NULL を返す):
NaNやInfを含む Float* 値の文字列表現。- 2 進数および 16 進数値の文字列表現(例:
SELECT toInt128OrNull('0xc0fe');)。
入力値が Int128 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとはみなされません。
関連項目:
構文
引数
x— 数値を表す文字列。String
戻り値
Int128 型の値を返します。変換に失敗した場合は NULL を返します。Int128 または NULL
例
使用例
toInt128OrZero
導入バージョン: v20.8
入力値を型 Int128 に変換しますが、エラーが発生した場合は 0 を返します。
toInt128 と同様ですが、例外をスローする代わりに 0 を返します。
関連項目:
構文
引数
返り値
変換された入力値を返します。変換に失敗した場合は 0 を返します。戻り値の型は Int128 です。
例
使用例
変換に失敗すると 0 を返す
toInt16
導入バージョン: v1.1
入力値を Int16 型の値に変換します。
エラーが発生した場合は例外をスローします。
サポートされる引数:
- 型 (U)Int* の値、またはその文字列表現。
- 型 Float* の値。
サポートされない引数:
NaNやInfを含む、Float* 値の文字列表現。SELECT toInt16('0xc0fe');のような、バイナリ値および 16 進値の文字列表現。
入力値が Int16 の範囲内で表現できない場合、結果としてオーバーフローまたはアンダーフローが発生します。
これはエラーとは見なされません。
例: SELECT toInt16(32768) == -32768;。
この関数は rounding towards zero(ゼロ方向への丸め)を使用します。つまり、小数部の桁を切り捨てます。
関連項目:
構文
引数
expr— 数値または数値を表す文字列を返す式。Expression
返り値
16 ビット整数値を返します。Int16
例
使用例
toInt16OrDefault
導入バージョン: v21.11
toInt16 と同様に、この関数は入力値を Int16 型の値に変換しますが、エラー時にはデフォルト値を返します。
default 値が指定されていない場合は、エラー時に 0 が返されます。
構文
引数
戻り値
成功した場合は型 Int16 の値を返し、失敗した場合はデフォルト値が指定されていればその値を、指定されていなければ 0 を返します。Int16
例
変換が成功する場合
変換失敗
toInt16OrNull
導入バージョン: v1.1
toInt16 と同様に、この関数は入力値を型 Int16 の値に変換しますが、エラーが発生した場合は NULL を返します。
サポートされている引数:
- (U)Int* 型値の文字列表現。
サポートされていない引数(NULL を返す):
NaNやInfを含む、Float* 型値の文字列表現。SELECT toInt16OrNull('0xc0fe');のような、2進数および16進数値の文字列表現。
入力値が Int16 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとはみなされません。
関連項目:
構文
引数
x— 数値を表す文字列。String
戻り値
変換に成功した場合は Int16 型の値を返し、失敗した場合は NULL を返します。Int16 または NULL
例
使用例
toInt16OrZero
導入バージョン: v1.1
toInt16 と同様に、この関数は入力値を Int16 型の値に変換しますが、エラーが発生した場合は 0 を返します。
サポートされる引数:
- (U)Int* の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む Float* 型の値の文字列表現。SELECT toInt16OrZero('0xc0fe');のような、2進数および16進数値の文字列表現。
入力値が Int16 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとはみなされません。
関連項目:
構文
引数
x— 数値を表す文字列。String
返される値
Int16 型の値を返します。変換に失敗した場合は 0 を返します。Int16
例
使用例
toInt256
導入バージョン: v1.1
入力値を型 Int256 の値に変換します。 エラーが発生した場合には例外をスローします。 この関数は 0 に向かう丸めを行い、数値の小数部を切り捨てます。
サポートされる引数:
- 型 (U)Int* の値、またはその文字列表現。
- 型 Float* の値。
サポートされない引数:
NaNやInfを含む、型 Float* の値の文字列表現。- 2 進数および 16 進数値の文字列表現(例:
SELECT toInt256('0xc0fe');)。
入力値が Int256 の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
関連項目:
構文
引数
expr— 数値または数値を表す文字列を返す式。Expression
返される値
256 ビット整数値を返します。Int256
例
使用例
toInt256OrDefault
導入バージョン: v21.11
toInt256 と同様に、この関数は入力値を Int256 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 値が指定されていない場合は、エラー発生時に 0 が返されます。
構文
引数
返される値
成功した場合は型 Int256 の値を返し、解析に失敗した場合は指定されていればデフォルト値を、指定されていなければ 0 を返します。Int256
例
変換が成功する例
変換に失敗
toInt256OrNull
導入バージョン: v20.8
toInt256 と同様に、この関数は入力値を Int256 型の値に変換しますが、エラー時には NULL を返します。
サポートされる引数:
- (U)Int* の文字列表現。
サポートされない引数(NULL を返す):
NaNやInfを含む、Float* 値の文字列表現。- 2進数および16進数値を表す文字列表現。例:
SELECT toInt256OrNull('0xc0fe');。
入力値が Int256 の範囲内で表現できない場合、結果のオーバーフローまたはアンダーフローが発生します。 この場合はエラーとは見なされません。
関連項目:
構文
引数
x— 数値を表す文字列。String
返り値
変換が成功した場合は Int256 型の値を返し、失敗した場合は NULL を返します。Int256 または NULL
例
使用例
toInt256OrZero
導入バージョン: v20.8
入力値を型 Int256 に変換しますが、エラーが発生した場合は 0 を返します。
toInt256 と同様ですが、例外をスローせずに 0 を返します。
関連項目:
構文
引数
戻り値
変換された入力値を返し、変換に失敗した場合は 0 を返します。Int256
例
使用例
変換に失敗した場合は 0 を返します
toInt32
導入バージョン: v1.1
入力値を Int32 型の値に変換します。
エラーが発生した場合は例外をスローします。
サポートされる引数:
- 型 (U)Int* の値、またはその文字列表現
- 型 Float* の値
サポートされない引数:
NaNやInfを含む、Float* 値の文字列表現SELECT toInt32('0xc0fe');のような、バイナリおよび 16 進数値の文字列表現
入力値が Int32 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。
これはエラーとは見なされません。
例: SELECT toInt32(2147483648) == -2147483648;
この関数は rounding towards zero を使用します。これは、小数部を切り捨てることを意味します。
関連項目:
構文
引数
expr— 数値または数値を表す文字列を返す式。Expression
戻り値
32ビットの整数値を返します。Int32
例
使用例
toInt32OrDefault
導入バージョン: v21.11
toInt32 と同様に、この関数は入力値を Int32 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 引数が指定されていない場合、エラー時には 0 が返されます。
構文
引数
返される値
成功した場合は Int32 型の値を返し、失敗した場合は default が指定されていればその値を、指定されていなければ 0 を返します。Int32
使用例
変換に成功する例
変換に失敗
toInt32OrNull
導入バージョン: v1.1
toInt32 と同様に、この関数は入力値を Int32 型の値に変換しますが、エラーが発生した場合は NULL を返します。
サポートされる引数:
- (U)Int* の文字列表現。
サポートされない引数(NULL を返す):
NaNやInfを含む Float* 値の文字列表現。- 2 進数や 16 進数値の文字列表現(例:
SELECT toInt32OrNull('0xc0fe');)。
入力値が Int32 の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。 これはエラーとはみなされません。
関連項目:
構文
引数
x— 数値の文字列表現。String
返される値
変換に成功した場合は Int32 型の値、変換に失敗した場合は NULL を返します。Int32 または NULL
例
使用例
toInt32OrZero
導入バージョン: v1.1
toInt32 と同様に、この関数は入力値を Int32 型の値に変換しますが、エラーが発生した場合は 0 を返します。
サポートされる引数:
- (U)Int* の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む Float* 値の文字列表現。- 例えば
SELECT toInt32OrZero('0xc0fe');のような、2進数および16進数値の文字列表現。
入力値が Int32 の範囲で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとはみなされません。
関連項目:
構文
引数
x— 数値を表す文字列。String
返される値
Int32 型の値を返します。変換に失敗した場合は 0 を返します。Int32
例
使用例
toInt64
導入バージョン: v1.1
入力値を Int64 型の値に変換します。
エラーが発生した場合は例外をスローします。
サポートされる引数:
- 型が (U)Int* の値、またはその文字列表現。
- 型が Float* の値。
サポートされない引数:
NaNやInfを含む、Float* 値の文字列表現。SELECT toInt64('0xc0fe');のような、2進数および16進数値の文字列表現。
入力値が Int64 の範囲で表現できない場合、結果はオーバーフローまたはアンダーフローします。
これはエラーとはみなされません。
例: SELECT toInt64(9223372036854775808) == -9223372036854775808;
この関数は rounding towards zero(ゼロ方向への丸め)を行います。つまり、小数部分の桁を切り捨てます。
関連項目:
構文
引数
expr— 数値、または数値の文字列表現を返す式。サポートされるもの: 型 (U)Int* の値およびその文字列表現、型 Float* の値。サポートされないもの: NaN や Inf を含む Float* 値の文字列表現、バイナリ値および 16 進値の文字列表現。Expression
戻り値
64 ビットの整数値を返します。Int64
例
使用例
toInt64OrDefault
導入バージョン: v21.11
toInt64 と同様に、この関数は入力値を Int64 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 値が渡されない場合、エラー時には 0 が返されます。
構文
引数
戻り値
変換に成功した場合は型 Int64 の値を返し、失敗した場合はデフォルト値が指定されていればそれを、指定されていなければ 0 を返します。Int64
例
変換が成功する例
変換に失敗した場合
toInt64OrNull
導入バージョン: v1.1
toInt64 と同様に、この関数は入力値を Int64 型の値に変換しますが、エラーが発生した場合は NULL を返します。
サポートされる引数:
- (U)Int* 型の値を表す文字列。
サポートされない引数(NULL を返す):
NaNやInfを含む Float* 型の値を表す文字列。SELECT toInt64OrNull('0xc0fe');のような、2進数および16進数値を表す文字列。
入力値が Int64 の範囲内で表現できない場合、結果としてオーバーフローまたはアンダーフローが発生します。 これはエラーとは見なされません。
関連項目:
構文
引数
x— 数値の文字列表現。String
戻り値
変換に成功した場合は Int64 型の値を返し、失敗した場合は NULL を返します。Int64 または NULL
例
使用例
toInt64OrZero
導入バージョン: v1.1
入力値を型 Int64 に変換します。エラーが発生した場合は 0 を返します。
toInt64 と似ていますが、例外をスローする代わりに 0 を返します。
参照:
構文
引数
戻り値
変換された入力値を返します。変換に失敗した場合は 0 を返します。返される型は Int64 です。
例
使用例
変換に失敗した場合は 0 を返します
toInt8
導入バージョン: v1.1
入力値を Int8 型の値に変換します。
エラーが発生した場合は例外をスローします。
サポートされる引数:
- 型 (U)Int* の値、またはその文字列表現。
- 型 Float* の値。
サポートされない引数:
NaNやInfを含む、Float* 値の文字列表現。- 2進数および16進数値の文字列表現。例:
SELECT toInt8('0xc0fe');。
入力値が Int8 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。
これはエラーとは見なされません。
例: SELECT toInt8(128) == -128;。
この関数はゼロ方向への丸めを使用し、小数部分の桁を切り捨てます。
関連項目:
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression
返される値
8 ビット整数値を返します。Int8
例
使用例
toInt8OrDefault
導入バージョン: v21.11
toInt8 と同様に、この関数は入力値を型 Int8 の値に変換しますが、エラー発生時にはデフォルト値を返します。
default 値が指定されていない場合、エラー時には 0 が返されます。
構文
引数
返される値
成功した場合は型 Int8 の値を返し、失敗した場合は指定されていればデフォルト値を、指定されていなければ 0 を返します。Int8
例
変換が成功する例
変換失敗
toInt8OrNull
導入: v1.1
toInt8 と同様に、この関数は入力値を Int8 型の値に変換しますが、エラーが発生した場合は NULL を返します。
サポートされる引数:
- (U)Int* の文字列表現。
サポートされない引数(NULL を返す):
NaNやInfを含む Float* 値の文字列表現。SELECT toInt8OrNull('0xc0fe');のような、2 進および 16 進値の文字列表現。
入力値が Int8 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローを起こします。 この場合もエラーとは見なされません。
関連項目:
構文
引数
x— 数値を表す文字列。String
戻り値
Int8 型の値を返し、変換に失敗した場合は NULL を返します。Int8 または NULL
例
使用例
toInt8OrZero
導入バージョン: v1.1
toInt8 と同様に、この関数は入力値を Int8 型の値に変換しますが、エラーが発生した場合は 0 を返します。
サポートされる引数:
- (U)Int* の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む Float* 型の値の文字列表現。SELECT toInt8OrZero('0xc0fe');のような 2 進数および 16 進数値の文字列表現。
入力値が Int8 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローが発生します。 この場合もエラーとはみなされません。
参照:
構文
引数
x— 数値を表す文字列。String
戻り値
変換に成功した場合は Int8 型の値を返し、失敗した場合は 0 を返します。Int8
例
使用例
toInterval
導入バージョン: v25.4
数値と単位を表す文字列から Interval 型の値を作成します。
この関数は、単位を文字列引数として指定することで、単一の関数で さまざまな種類の間隔(秒、分、時間、日、週、月、四半期、年)を一貫した方法で作成できるようにします。単位文字列は大文字小文字を区別しません。
これは toIntervalSecond、toIntervalMinute、toIntervalDay などの型固有の関数を呼び出すことと同等ですが、
単位を文字列パラメータとして動的に指定できる点が異なります。
構文
引数
value— 単位の数を表す数値。いずれかの数値型を指定できます。Int8またはInt16またはInt32またはInt64またはUInt8またはUInt16またはUInt32またはUInt64またはFloat32またはFloat64unit— 時間の単位。定数文字列である必要があります。有効な値: 'nanosecond', 'microsecond', 'millisecond', 'second', 'minute', 'hour', 'day', 'week', 'month', 'quarter', 'year'.String
返される値
指定された型の Interval 値を返します。結果の型は単位に依存し、IntervalNanosecond、IntervalMicrosecond、IntervalMillisecond、IntervalSecond、IntervalMinute、IntervalHour、IntervalDay、IntervalWeek、IntervalMonth、IntervalQuarter、または IntervalYear のいずれかになります。Interval
例
異なる単位の Interval を作成する
日付の計算に interval を使用する
動的な INTERVAL の生成
toIntervalDay
導入バージョン: v1.1
データ型 IntervalDay の n 日の時間間隔を返します。
構文
引数
戻り値
n 日のインターバルを返します。Interval
例
使用例
toIntervalHour
導入バージョン: v1.1
データ型 IntervalHour の n 時間を表すインターバルを返します。
構文
引数
戻り値
n 時間の Interval を返します。Interval
例
使用例
toIntervalMicrosecond
導入バージョン: v22.6
IntervalMicrosecond 型の n マイクロ秒のインターバル(IntervalMicrosecond)を返します。
構文
引数
戻り値
n マイクロ秒の Interval 型の値を返します。
例
使用例
toIntervalMillisecond
導入バージョン: v22.6
n ミリ秒を表すデータ型 IntervalMillisecond の時間間隔を返します。
構文
引数
戻り値
n ミリ秒の Interval を返します。Interval
例
使用例
toIntervalMinute
導入バージョン: v1.1
データ型 IntervalMinute の n 分を表す時間間隔を返します。
構文
引数
戻り値
n 分のインターバルを返します。Interval
例
使用例
toIntervalMonth
導入バージョン: v1.1
データ型 IntervalMonth の、n ヶ月の間隔を表す値を返します。
構文
引数
返り値
n か月のインターバルを返します。Interval
例
使用例
toIntervalNanosecond
導入バージョン: v22.6
データ型 IntervalNanosecond の、n ナノ秒を表す時間間隔を返します。
構文
引数
戻り値
n ナノ秒の Interval を返します。
例
使用例
toIntervalQuarter
導入バージョン: v1.1
データ型 IntervalQuarter の n 四半期のインターバルを返します。
構文
引数
返される値
n 四半期分の期間を表す Interval を返します。
例
使用例
toIntervalSecond
導入バージョン: v1.1
データ型 IntervalSecond の、長さ n 秒の時間間隔を返します。
構文
引数
返される値
n 秒の時間間隔を返します。Interval
例
使用例
toIntervalWeek
導入バージョン: v1.1
データ型 IntervalWeek の n 週間の間隔を表す値を返します。
構文
引数
返される値
n 週間の間隔(Interval)を返します。
例
使用例
toIntervalYear
導入: v1.1
データ型 IntervalYear の n 年の期間を返します。
構文
引数
戻り値
n 年の Interval を返します。Interval
例
使用例
toLowCardinality
導入バージョン: v18.12
入力引数を、同一データ型に対応する LowCardinality 型に変換します。
LowCardinality データ型から通常のデータ型に変換するには、CAST 関数を使用します。
例: CAST(x AS String)。
構文
引数
返される値
入力値を LowCardinality データ型に変換した値を返します。LowCardinality
例
使用例
toString
導入バージョン: v1.1
値を文字列表現に変換します。 DateTime 型の引数に対しては、タイムゾーン名を表す 2 番目の String 型引数を指定できます。
構文
引数
戻り値
入力値の文字列表現を返します。String
例
使用例
toStringCutToZero
導入バージョン: v1.1
String または FixedString 型の引数を受け取り、最初のヌルバイトの位置で切り詰めた元の文字列のコピーを含む String を返します。
ヌルバイト (\0) は文字列終端として扱われます。 この関数は、ヌルバイトが有効な内容の終端を示す C 形式の文字列やバイナリデータを処理する際に有用です。
構文
引数
s— 処理対象となる String または FixedString。StringまたはFixedString
戻り値
最初のヌルバイトより前の文字からなる String を返します。String
例
使用例
toTime
導入: v1.1
入力値を型 Time に変換します。 String、FixedString、DateTime、または午前0時からの経過秒数を表す数値型からの変換をサポートします。
構文
引数
x— 変換する入力値。String、FixedString、DateTime、(U)Int*、またはFloat*のいずれか。
返り値
変換後の値を返します。Time
使用例
String 型から Time 型への変換
DateTime から Time への型変換
整数を Time 型に変換
toTime64
導入バージョン: v25.6
入力値を型 Time64 に変換します。 String、FixedString、DateTime64、または真夜中(0時)からの経過マイクロ秒数を表す数値型からの変換をサポートします。 時刻値に対してマイクロ秒単位の精度を提供します。
構文
引数
x— 変換する入力値。String、FixedString、DateTime64、(U)Int*、またはFloat*
返される値
マイクロ秒単位の精度で変換された入力値を返します。Time64(6)
例
String 型から Time64 型への変換
DateTime64 から Time64 への変換
整数から Time64 への型変換
toTime64OrNull
導入バージョン: v25.6
入力値を Time64 型に変換しますが、エラーが発生した場合は NULL を返します。
toTime64 と同様ですが、変換エラー時に例外をスローする代わりに NULL を返します。
関連項目:
構文
引数
x— サブ秒精度付きの時刻の文字列表現。String
戻り値
成功した場合は Time64 型の値を返し、それ以外の場合は NULL を返します。Time64 または NULL
例
使用例
toTime64OrZero
導入されたバージョン: v25.6
入力値を Time64 型の値に変換しますが、エラーが発生した場合は 00:00:00.000 を返します。
toTime64 と同様ですが、変換エラー時に例外をスローする代わりに 00:00:00.000 を返します。
構文
引数
x— サブ秒精度を持つ時刻を表す文字列。String
戻り値
成功した場合は Time64 値を返し、失敗した場合は 00:00:00.000 を返します。Time64
例
使用例
toTimeOrNull
導入バージョン: v1.1
入力値を Time 型の値に変換しますが、エラーが発生した場合は NULL を返します。
変換エラー時に例外をスローする代わりに NULL を返す点を除き、toTime と同様です。
関連項目:
構文
引数
x— 時刻を表す文字列。String
返される値
成功した場合は Time 型の値を返し、そうでない場合は NULL を返します。Time または NULL
例
使用例
toTimeOrZero
導入バージョン: v1.1
入力値を Time 型に変換しますが、エラーが発生した場合は 00:00:00 を返します。
toTime と同様に動作しますが、変換エラー時に例外をスローする代わりに 00:00:00 を返します。
構文
引数
x— 時刻を表す文字列。String
戻り値
変換に成功した場合は Time 型の値を返し、失敗した場合は 00:00:00 を返します。Time
例
使用例
toUInt128
導入バージョン: v1.1
入力値を UInt128 型の値に変換します。
エラーが発生した場合には例外をスローします。
関数はゼロ方向への丸めを使用し、数値の小数桁を切り捨てます。
サポートされる引数:
- 型 (U)Int* の値またはその文字列表現。
- 型 Float* の値。
サポートされない引数:
NaNやInfを含む、型 Float* の値の文字列表現。SELECT toUInt128('0xc0fe');のような、2進数および16進数値の文字列表現。
入力値が UInt128 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
関連項目:
構文
引数
expr— 数値または数値を表す文字列を返す式。Expression
返される値
128 ビットの符号なし整数値を返します。UInt128
例
使用例
toUInt128OrDefault
導入バージョン: v21.11
toUInt128 と同様に、この関数は入力値を UInt128 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 値が指定されていない場合、エラーが発生したときは 0 が返されます。
構文
引数
戻り値
変換に成功した場合は UInt128 型の値を返し、失敗した場合は指定されていればデフォルト値を、指定されていなければ 0 を返します。UInt128
例
変換が成功する例
変換に失敗
toUInt128OrNull
導入バージョン: v21.6
toUInt128 と同様に、この関数は入力値を UInt128 型の値に変換しますが、エラーが発生した場合には NULL を返します。
サポートされる引数:
- (U)Int* の文字列表現。
サポートされない引数(NULL を返す):
NaNやInfを含む Float* 型の値の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toUInt128OrNull('0xc0fe');。
入力値が UInt128 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローを起こします。
これはエラーとは見なされません。
関連項目:
構文
引数
x— 数値を表す文字列。String
返される値
UInt128 型の値を返します。変換に失敗した場合は NULL を返します。UInt128 または NULL
例
使用例
toUInt128OrZero
導入バージョン: v1.1
toUInt128 と同様に、この関数は入力値を UInt128 型の値に変換しますが、エラーが発生した場合には 0 を返します。
サポートされる引数:
- (U)Int* の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む Float* 値の文字列表現。- 2 進数および 16 進数値の文字列表現(例:
SELECT toUInt128OrZero('0xc0fe');)。
入力値が UInt128 の範囲内で表現できない場合、結果のオーバーフローまたはアンダーフローが発生しますが、これはエラーとは見なされません。
関連項目:
構文
引数
x— 数値を表す文字列。String
戻り値
変換に成功した場合は UInt128 型の値を返し、失敗した場合は 0 を返します。UInt128
例
使用例
toUInt16
導入バージョン: v1.1
入力値を UInt16 型の値に変換します。
エラーが発生した場合は例外をスローします。
サポートされる引数:
- (U)Int* 型の値またはその文字列表現。
- Float* 型の値。
サポートされない引数:
NaNやInfを含む、Float* 値の文字列表現。SELECT toUInt16('0xc0fe');のような、2 進数値および 16 進数値の文字列表現。
入力値が UInt16 の表現可能範囲外の場合、結果はオーバーフローまたはアンダーフローします。
これはエラーとは見なされません。
例: SELECT toUInt16(65536) == 0;。
この関数はゼロ方向への丸めを行い、小数部分の桁を切り捨てます。
関連項目:
構文
引数
expr— 数値、または数値を表す文字列のいずれかを返す式。Expression
戻り値
16 ビット符号なし整数値を返します。UInt16
例
使用例
toUInt16OrDefault
導入バージョン: v21.11
toUInt16 と同様に、この関数は入力値を UInt16 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 値が渡されていない場合、エラー時には 0 が返されます。
構文
引数
戻り値
変換に成功した場合は UInt16 型の値を返します。失敗した場合は、デフォルト値が指定されていればその値を、指定されていなければ 0 を返します。UInt16
例
変換が成功する例
変換失敗
toUInt16OrNull
導入バージョン: v1.1
toUInt16 と同様に、この関数は入力値を UInt16 型の値に変換しますが、エラーが発生した場合は NULL を返します。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(NULL を返す):
NaNやInfを含む Float* 型の値の文字列表現。SELECT toUInt16OrNull('0xc0fe');のような、2 進数および 16 進数値の文字列表現。
入力値が UInt16 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローが発生します。
これはエラーとはみなされません。
関連項目:
構文
引数
x— 数値を表す文字列。String
戻り値
変換が成功した場合は型 UInt16 の値を返し、失敗した場合は NULL を返します。UInt16 または NULL
例
使用例
toUInt16OrZero
導入バージョン: v1.1
toUInt16 と同様に、この関数は入力値を UInt16 型の値に変換しますが、エラーが発生した場合は 0 を返します。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む Float* 値の文字列表現。SELECT toUInt16OrZero('0xc0fe');のような、バイナリ値および 16 進値の文字列表現。
入力値が UInt16 の範囲内で表現できない場合、結果のオーバーフローまたはアンダーフローが発生します。
これはエラーとは見なされません。
関連項目:
構文
引数
x— 数値の文字列表現。String
返される値
変換が成功した場合は UInt16 型の値を返し、変換に失敗した場合は 0 を返します。UInt16
例
使用例
toUInt256
導入バージョン: v1.1
入力値を UInt256 型の値に変換します。 エラーが発生した場合は例外をスローします。 この関数はゼロ方向への丸めを行い、数値の小数桁を切り捨てます。
サポートされる引数:
- 型 (U)Int* の値またはその文字列表現。
- 型 Float* の値。
サポートされない引数:
NaNやInfを含む、型 Float* の値の文字列表現。SELECT toUInt256('0xc0fe');のような、2 進数および 16 進数の値の文字列表現。
入力値が UInt256 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
関連項目:
構文
引数
expr— 数値または数値を表す文字列を返す式。Expression
戻り値
256 ビットの符号なし整数値を返します。UInt256
例
使用例
toUInt256OrDefault
導入: v21.11
toUInt256 と同様に、この関数は入力値を UInt256 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 値が渡されない場合、エラー時には 0 が返されます。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Stringまたは(U)Int*またはFloat*default— 省略可能。解析(パース)に失敗した場合に返されるデフォルト値。UInt256
戻り値
成功した場合は UInt256 型の値を返し、失敗した場合は、指定されていればデフォルト値を、指定されていなければ 0 を返します。UInt256
例
変換が成功する例
変換に失敗した場合
toUInt256OrNull
導入バージョン: v20.8
toUInt256 と同様に、この関数は入力値を UInt256 型の値に変換しますが、エラーが発生した場合は NULL を返します。
サポートされる引数:
- (U)Int* の文字列表現。
サポートされない引数(NULL を返す):
NaNおよびInfを含む Float* 値の文字列表現。SELECT toUInt256OrNull('0xc0fe');のような、2 進数および 16 進数の値を表す文字列表現。
入力値が UInt256 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。
これはエラーとはみなされません。
参照:
構文
引数
x— 数値を表す文字列。String
戻り値
変換が成功した場合は型 UInt256 の値を返し、失敗した場合は NULL を返します。UInt256 または NULL
例
使用例
toUInt256OrZero
導入バージョン: v20.8
toUInt256 と同様に、この関数は入力値を UInt256 型の値に変換しますが、エラーが発生した場合は 0 を返します。
サポートされる引数:
- (U)Int* 型の値の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む Float* 型の値の文字列表現。SELECT toUInt256OrZero('0xc0fe');のような、2進数および16進数の値の文字列表現。
入力値が UInt256 の範囲で表現できない場合、結果のオーバーフローまたはアンダーフローが発生します。
これはエラーとは見なされません。
関連項目:
構文
引数
x— 数値を表す文字列。String
返される値
型 UInt256 の値。変換に失敗した場合は 0 を返します。UInt256
例
使用例
toUInt32
導入バージョン: v1.1
入力値を UInt32 型の値に変換します。
エラーが発生した場合は例外をスローします。
サポートされる引数:
- 型が (U)Int* の値、またはその文字列表現。
- 型が Float* の値。
サポートされない引数:
NaNやInfを含む、Float* 値の文字列表現。SELECT toUInt32('0xc0fe');のような、2 進数および 16 進数値の文字列表現。
入力値が UInt32 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。
これはエラーとはみなされません。
例: SELECT toUInt32(4294967296) == 0;
この関数は ゼロ方向への丸め を使用し、小数部の桁を切り捨てます。
関連項目:
構文
引数
expr— 数値または数値を表す文字列を返す式。Expression
戻り値
32 ビットの符号なし整数値を返します。UInt32
例
使用例
toUInt32OrDefault
導入バージョン: v21.11
toUInt32 と同様に、この関数は入力値を型 UInt32 の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 値が渡されない場合は、エラー時に 0 が返されます。
構文
引数
戻り値
成功した場合は UInt32 型の値を返します。失敗した場合は、既定値が指定されていればその値を、指定されていなければ 0 を返します。UInt32
例
変換が成功する例
変換失敗
toUInt32OrNull
導入バージョン: v1.1
toUInt32 と同様に、この関数は入力値を UInt32 型の値に変換しますが、エラーが発生した場合は NULL を返します。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(NULL を返す):
NaNやInfを含む Float* 型の値の文字列表現。- 2 進数および 16 進数値の文字列表現(例:
SELECT toUInt32OrNull('0xc0fe');)。
入力値が UInt32 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。
これはエラーとはみなされません。
参照:
構文
引数
x— 数値を表す文字列。String
戻り値
変換に成功した場合は型 UInt32 の値を返し、失敗した場合は NULL を返します。UInt32 または NULL
例
使用例
toUInt32OrZero
導入バージョン: v1.1
toUInt32 と同様に、この関数は入力値を UInt32 型の値に変換しますが、エラーが発生した場合には 0 を返します。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む Float* 値の文字列表現。SELECT toUInt32OrZero('0xc0fe');のような、2 進数値や 16 進数値の文字列表現。
入力値が UInt32 の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。
これはエラーとは見なされません。
関連項目:
構文
引数
x— 数値を表す文字列。String
戻り値
変換に成功した場合は型 UInt32 の値を返し、失敗した場合は 0 を返します。UInt32
例
使用例
toUInt64
導入バージョン: v1.1
入力値をUInt64型の値に変換します。
エラーが発生した場合は例外をスローします。
サポートされる引数:
- 型 (U)Int* の値またはその文字列表現。
- 型 Float* の値。
サポートされない型:
NaNやInfを含む、Float* 値の文字列表現。- バイナリ値および 16 進値の文字列表現(例:
SELECT toUInt64('0xc0fe');)。
入力値がUInt64の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。
これはエラーとは見なされません。
例: SELECT toUInt64(18446744073709551616) == 0;
この関数はゼロ方向への丸めを行います。つまり、小数部の桁を切り捨てます。
関連項目:
構文
引数
expr— 数値または数値を表す文字列を返す式。Expression
戻り値
64 ビット符号なし整数値を返します。UInt64
例
使用例
toUInt64OrDefault
導入バージョン: v21.11
toUInt64 と同様に、この関数は入力値を UInt64 型の値に変換しますが、エラーが発生した場合にはデフォルト値を返します。
default 引数が渡されていない場合は、エラー時に 0 が返されます。
構文
引数
expr— 数値、または数値を表す文字列を返す式です。Stringまたは(U)Int*またはFloat*default— 省略可能。パースに失敗した場合に返されるデフォルト値。UInt64
返される値
成功した場合は UInt64 型の値を返し、そうでない場合は、指定されていればデフォルト値を返し、指定されていなければ 0 を返します。UInt64
例
変換が成功する例
変換に失敗
toUInt64OrNull
導入バージョン: v1.1
toUInt64 と同様に、この関数は入力値を UInt64 型の値に変換しますが、エラーの場合は NULL を返します。
サポートされる引数:
- (U)Int* の文字列表現。
サポートされない引数(NULL を返す):
NaNやInfを含む Float* 型の値の文字列表現。- 2進数および16進数の文字列表現(例:
SELECT toUInt64OrNull('0xc0fe');)。
入力値が UInt64 の範囲で表現できない場合、結果はオーバーフローまたはアンダーフローを起こします。
これはエラーとはみなされません。
関連項目:
構文
引数
x— 数値を表す文字列。String
返される値
変換が成功した場合は UInt64 型の値を返し、失敗した場合は NULL を返します。UInt64 または NULL
例
使用例
toUInt64OrZero
導入バージョン: v1.1
toUInt64 と同様に、この関数は入力値を型 UInt64 の値に変換しますが、エラーが発生した場合は 0 を返します。
サポートされる引数:
- (U)Int* の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む Float* 値の文字列表現。SELECT toUInt64OrZero('0xc0fe');のようなバイナリ値および 16 進値の文字列表現。
入力値が UInt64 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローが発生します。
これはエラーとは見なされません。
関連項目:
構文
引数
x— 数値を表す文字列。String
戻り値
変換に成功した場合は UInt64 型の値を返し、失敗した場合は 0 を返します。UInt64
例
使用例
toUInt8
導入バージョン: v1.1
入力値を UInt8 型に変換します。
エラーが発生した場合は例外をスローします。
サポートされる引数:
- 型 (U)Int* の値またはその文字列表現。
- 型 Float* の値。
サポートされない引数:
NaNやInfを含む、Float* 値の文字列表現。- 2進数および16進数による値の文字列表現。例:
SELECT toUInt8('0xc0fe');。
入力値が UInt8 の範囲内で表現できない場合、結果のオーバーフローまたはアンダーフローが発生します。
これはエラーとは見なされません。
例: SELECT toUInt8(256) == 0;。
この関数はゼロ方向への丸めを使用します。これは数値の小数部を切り捨てることを意味します。
関連項目:
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression
戻り値
8ビット符号なし整数値を返します。 UInt8
例
使用例
toUInt8OrDefault
導入バージョン: v21.11
toUInt8 と同様に、この関数は入力値を UInt8 型の値に変換しますが、エラー発生時にはデフォルト値を返します。
default 引数が指定されていない場合、エラー発生時には 0 が返されます。
構文
引数
戻り値
成功した場合は UInt8 型の値を返し、失敗した場合は指定されていればデフォルト値を、指定されていなければ 0 を返します。UInt8
例
変換が成功する例
変換に失敗
toUInt8OrNull
導入バージョン: v1.1
toUInt8 と同様に、この関数は入力値を UInt8 型の値に変換しますが、エラーが発生した場合は NULL を返します。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(NULL を返す):
NaNやInfを含む、通常の Float* 値の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toUInt8OrNull('0xc0fe');。
入力値が UInt8 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。
この場合もエラーとは見なされません。
関連項目:
構文
引数
x— 数値を表す文字列。String
戻り値
変換が成功した場合は型 UInt8 の値を返し、失敗した場合は NULL を返します。UInt8 または NULL
例
使用例
toUInt8OrZero
導入バージョン: v1.1
toUInt8 と同様に、この関数は入力値を UInt8 型の値に変換しますが、エラーが発生した場合は 0 を返します。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(0 を返す):
- 通常の Float* 型の値(
NaNやInfを含む)の文字列表現。 - 2 進数および 16 進数値の文字列表現(例:
SELECT toUInt8OrZero('0xc0fe');)。
入力値が UInt8 の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。
これはエラーとは見なされません。
参照:
構文
引数
x— 数値を表す文字列。String
返り値
変換に成功した場合は UInt8 型の値を返し、失敗した場合は 0 を返します。UInt8
例
使用例
toUUID
バージョン v1.1 で導入。
String の値を UUID 型の値に変換します。
構文
引数
string— UUID を表す文字列。StringまたはFixedString
返される値
UUID の文字列表現から UUID 型の値を返します。UUID
例
使用例
toUUIDOrZero
導入バージョン: v20.12
入力値を UUID 型の値に変換しますが、エラーが発生した場合はゼロ UUID を返します。
toUUID と同様ですが、変換エラー時に例外をスローする代わりにゼロ UUID(00000000-0000-0000-0000-000000000000)を返します。
サポートされる引数:
- 標準形式の UUID の文字列表現(8-4-4-4-12 個の 16 進数)。
- ハイフンなしの UUID の文字列表現(32 個の 16 進数)。
サポートされない引数(ゼロ UUID を返す):
- 無効な文字列形式。
- 文字列以外の型。
構文
引数
x— UUID を表す文字列表現。String
戻り値
成功した場合は UUID 値を返し、失敗した場合はゼロ UUID(00000000-0000-0000-0000-000000000000)を返します。UUID
例
使用例
toUnixTimestamp64Micro
導入バージョン: v20.5
DateTime64 を、マイクロ秒精度が固定された Int64 値に変換します。
入力値は、その精度に応じて適切にスケーリングされて拡大または縮小されます。
出力値は、入力値のタイムゾーンではなく、UTC を基準にしています。
構文
引数
value— 任意の精度を持つ DateTime64 型の値。DateTime64
戻り値
マイクロ秒単位の Unix タイムスタンプを返します。Int64
例
使用例
toUnixTimestamp64Milli
導入バージョン: v20.5
DateTime64 を固定ミリ秒精度の Int64 値に変換します。
入力値は、その精度に応じて適切にスケールアップまたはスケールダウンされます。
出力値は、入力値のタイムゾーンではなく、UTC を基準とします。
構文
引数
value— 任意の精度を持つ DateTime64 値。DateTime64
戻り値
ミリ秒単位の Unix タイムスタンプを返します。Int64
例
使用例
toUnixTimestamp64Nano
導入バージョン: v20.5
DateTime64 を、ナノ秒の固定精度を持つ Int64 値に変換します。
入力値は、その精度に応じて適切に拡大または縮小されます。
出力値は、入力値のタイムゾーンではなく、UTC を基準としています。
構文
引数
value— 任意の精度を持つ DateTime64 値。DateTime64
戻り値
ナノ秒精度の Unix タイムスタンプを返します。Int64
例
使用例
toUnixTimestamp64Second
導入バージョン: v24.12
DateTime64 を秒単位の固定精度を持つ Int64 値に変換します。
入力値は、その小数精度に応じて適切にスケールアップまたはスケールダウンされます。
出力値は入力値のタイムゾーンではなく、UTC を基準とします。
構文
引数
value— 任意の精度を持つ DateTime64 型の値。DateTime64
戻り値
秒単位の Unix タイムスタンプを返します。Int64
例
使用例