型変換関数
データ変換時の一般的な問題
ClickHouse は、一般的に C++ プログラムと同じ動作 を採用しています。
to<type> 関数と cast は、いくつかのケースで挙動が異なります。例えば LowCardinality の場合です。cast は LowCardinality の特性を削除しますが、to<type> 関数は削除しません。Nullable についても同様です。この挙動は SQL 標準とは互換性がなく、cast_keep_nullable 設定を使用して変更できます。
あるデータ型の値を、より小さいデータ型(例えば Int64 から Int32)や互換性のないデータ型(例えば String から Int)へ変換する場合、データが失われる可能性があることに注意してください。結果が期待どおりになっているかどうか、必ず慎重に確認してください。
例:
toString 関数に関する注意事項
toString ファミリーの関数は、数値、文字列(FixedString は除く)、日付、および日時の間での変換を行うための関数です。
これらの関数はいずれも 1 つの引数を受け取ります。
- 文字列への変換および文字列からの変換時には、値は TabSeparated 形式(およびほぼすべての他のテキスト形式)と同じルールでフォーマットまたはパースされます。文字列をパースできない場合は、例外がスローされ、リクエストはキャンセルされます。
- 日付と数値を相互に変換する場合、日付は Unix エポックの開始からの経過日数に対応します。
- 日時と数値を相互に変換する場合、日時は Unix エポックの開始からの経過秒数に対応します。
DateTime型の引数に対するtoString関数は、Europe/Amsterdamのようなタイムゾーン名を含む 2 つ目の String 型引数を取ることができます。この場合、時刻は指定されたタイムゾーンに従ってフォーマットされます。
toDate/toDateTime 関数に関する注意事項
toDate/toDateTime 関数における日付および日時の形式は、次のように定義されています。
例外として、数値型 UInt32、Int32、UInt64、あるいは Int64 から Date への変換において、その数値が 65536 以上の場合、その数値は日数ではなく Unix タイムスタンプとして解釈され、日付に切り捨てられます。
これにより、本来であればエラーとなり、より煩雑な toDate(toDateTime(unix_timestamp)) と書く必要がある、よくある記述パターン toDate(unix_timestamp) をサポートできます。
日付と日時との間の変換は、自然な方法で行われます。すなわち、時刻 0:00 を付加するか、時刻部分を削除するかのいずれかです。
数値型同士の変換は、C++ における異なる数値型間の代入時の規則と同じ規則に従います。
例
クエリ:
結果:
toUnixTimestamp 関数も参照してください。
toBool
入力値を Bool 型の値に変換します。エラーが発生した場合は例外をスローします。
構文
引数
expr— 数値または文字列を返す式。式。
サポートされる引数は次のとおりです:
- 型 (U)Int8/16/32/64/128/256 の値。
- 型 Float32/64 の値。
- 文字列
trueまたはfalse(大文字小文字は区別しない)。
戻り値
- 引数の評価結果に基づいて
trueまたはfalseを返します。Bool。
例
クエリ:
結果:
toInt8
入力値をInt8型の値に変換します。エラーが発生した場合は例外を送出します。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値、またはその文字列表現。
- 型 Float32/64 の値。
サポートされない引数:
NaNやInfを含む、Float32/64 値の文字列表現。- バイナリ値や 16 進値の文字列表現。例:
SELECT toInt8('0xc0fe');。
入力値が Int8 の範囲内で表現できない場合、結果のオーバーフローまたはアンダーフローが発生します。
これはエラーとは見なされません。
例: SELECT toInt8(128) == -128;。
戻り値
- 8 ビット整数型の値。Int8。
この関数はゼロ方向への丸めを使用します。つまり、小数部を切り捨てます。
例
クエリ:
結果:
関連項目
toInt8OrZero
toInt8 と同様に、この関数は入力値を Int8 型の値に変換しますが、エラーが発生した場合は 0 を返します。
構文
引数
x— 数値の文字列表現。String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む、通常の Float32/64 値の文字列表現。- 2 進数および 16 進数の値の文字列表現(例:
SELECT toInt8OrZero('0xc0fe');)。
入力値が Int8 の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
返される値
- 成功した場合は 8 ビット整数値、それ以外の場合は
0。Int8。
この関数はゼロ方向への丸めを使用します。つまり、小数部の桁を切り捨てます。
例
クエリ:
結果:
関連項目
toInt8OrNull
toInt8 と同様に、この関数は入力値を Int8 型の値に変換しますが、エラーが発生した場合は NULL を返します。
構文
引数
x— 数値の文字列表現。String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(\N を返す):
NaNやInfを含む Float32/64 型の値の文字列表現。- 2 進数および 16 進数の値の文字列表現(例:
SELECT toInt8OrNull('0xc0fe');)。
入力値が Int8 の表現可能範囲外の場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
返される値
この関数はゼロ方向への丸めを使用し、小数部の桁を切り捨てます。
例
クエリ:
結果:
関連項目
toInt8OrDefault
toInt8 と同様に、この関数は入力値を型 Int8 の値に変換しますが、エラー発生時にはデフォルト値を返します。
default 値が渡されない場合、エラー発生時には 0 が返されます。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression / String。default(省略可) —Int8型への変換に失敗した場合に返されるデフォルト値。Int8。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値、またはその文字列表現。
- 型 Float32/64 の値。
デフォルト値が返される引数:
NaNやInfを含む、Float32/64 の値の文字列表現。- 2 進表記および 16 進表記の値の文字列表現。例:
SELECT toInt8OrDefault('0xc0fe', CAST('-1', 'Int8'));。
入力値が Int8 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとはみなされません。
戻り値
- 成功した場合は 8 ビット整数値。失敗した場合は、渡されたデフォルト値、渡されていなければ
0を返します。Int8。
- この関数は ゼロ方向への丸め を行い、小数部分の桁を切り捨てます。
- デフォルト値の型は、キャスト先の型と同じでなければなりません。
例
クエリ:
結果:
関連項目
toInt16
入力値をInt16型の値に変換します。エラーが発生した場合には例外をスローします。
構文
引数
expr— 数値、または数値を表す文字列を返す式。式 (Expression)。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値、またはそれらの文字列表現。
- 型 Float32/64 の値。
サポートされない引数:
NaNやInfを含む、Float32/64 値の文字列表現。SELECT toInt16('0xc0fe');のような、2 進数や 16 進数を表す文字列。
入力値が Int16 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。
これはエラーとは見なされません。
例: SELECT toInt16(32768) == -32768;。
返される値
- 16 ビット整数値。Int16。
この関数は 0 への丸め を行います。つまり、小数部分の桁を切り捨てます。
例
クエリ:
結果:
関連項目
toInt16OrZero
toInt16 と同様に、この関数は入力値を Int16 型の値に変換しますが、エラーが発生した場合には 0 を返します。
構文
引数
x— 数値の文字列表現。String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む Float32/64 値の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toInt16OrZero('0xc0fe');。
入力値が Int16 の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
返される値
- 正常に変換できた場合は 16 ビット整数値、それ以外の場合は
0。Int16。
この関数はゼロ方向への丸めを使用します。つまり、小数部を切り捨てます。
例
クエリ:
結果:
関連項目
toInt16OrNull
toInt16 と同様に、この関数は入力値を Int16 型の値に変換しますが、エラーが発生した場合には NULL を返します。
構文
引数
x— 数値の文字列表現。String。
サポートされている引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされていない引数(\N を返す):
NaNやInfを含む Float32/64 値の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toInt16OrNull('0xc0fe');。
入力値が Int16 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローを起こします。 これはエラーとは見なされません。
返される値
この関数はゼロ方向への丸めを使用します。つまり、小数点以下の桁を切り捨てます。
例
クエリ:
結果:
関連項目
toInt16OrDefault
toInt16 と同様に、この関数は入力値を型 Int16 の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 値が指定されていない場合、エラー時には 0 が返されます。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression / String。default(省略可) —Int16型への変換に失敗した場合に返されるデフォルト値。Int16。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値、またはその文字列表現。
- 型 Float32/64 の値。
デフォルト値が返される引数:
NaNやInfを含む、Float32/64 値の文字列表現。- 2 進数および 16 進数の値を表す文字列表現。例:
SELECT toInt16OrDefault('0xc0fe', CAST('-1', 'Int16'));。
入力値が Int16 の範囲内で表現できない場合、結果のオーバーフローまたはアンダーフローが発生します。 これはエラーとは見なされません。
返される値
- 成功した場合は 16 ビット整数値を返し、それ以外の場合は指定されていればデフォルト値、指定されていなければ
0を返します。Int16。
- 関数はゼロ方向への丸めを使用し、小数部を切り捨てます。
- デフォルト値の型はキャスト先の型と同じでなければなりません。
例
クエリ:
結果:
関連項目
toInt32
入力値をInt32型の値に変換します。エラー時には例外をスローします。
構文
引数
expr— 数値、または数値の文字列表現を返す式。Expression。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値または文字列表現。
- 型 Float32/64 の値。
サポートされない引数:
NaNやInfを含む、Float32/64 値の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toInt32('0xc0fe');。
入力値が Int32 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。
これはエラーとはみなされません。
例: SELECT toInt32(2147483648) == -2147483648;
戻り値
- 32 ビット整数値。Int32。
この関数はゼロ方向への丸めを使用し、小数部分を切り捨てます。
例
クエリ:
結果:
関連項目
toInt32OrZero
toInt32 と同様に、この関数は入力値を Int32 型の値に変換しますが、エラーが発生した場合は 0 を返します。
構文
引数
x— 数値の文字列表現。String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む Float32/64 型の値の文字列表現。- 2 進数値や 16 進数値の文字列表現(例:
SELECT toInt32OrZero('0xc0fe');)。
入力値が Int32 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
戻り値
- 成功した場合は 32 ビット整数値、それ以外の場合は
0。Int32
この関数はゼロ方向への丸めを使用します。これは、小数部の桁を切り捨てることを意味します。
例
クエリ:
結果:
関連項目
toInt32OrNull
toInt32 と同様に、この関数は入力値を Int32 型の値に変換しますが、エラーが発生した場合は NULL を返します。
構文
引数
x— 数値の文字列表現。String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(\N を返す):
NaNやInfを含む Float32/64 値の文字列表現。SELECT toInt32OrNull('0xc0fe');のような、2 進数および 16 進数値の文字列表現。
入力値が Int32 の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
返される値
この関数は ゼロ方向への丸め を使用します。つまり、小数部の桁を切り捨てます。
例
クエリ:
結果:
関連項目
toInt32OrDefault
toInt32 と同様に、この関数は入力値を Int32 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 値が指定されない場合、エラー時には 0 が返されます。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression / String。default(省略可能) —Int32型へのパースに失敗した場合に返す既定値。Int32。
サポートされる引数:
- (U)Int8/16/32/64/128/256 型の値、またはその文字列表現。
- Float32/64 型の値。
既定値が返される引数:
NaNやInfを含む Float32/64 値の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toInt32OrDefault('0xc0fe', CAST('-1', 'Int32'));。
入力値が Int32 の範囲で表現できない場合、結果のオーバーフローまたはアンダーフローが発生します。 これはエラーとは見なされません。
返される値
- 成功した場合は 32 ビット整数値を返し、そうでない場合は指定されていれば既定値を、指定されていなければ
0を返します。Int32。
- この関数はゼロ方向への丸めを使用します。これは数値の小数部を切り捨てることを意味します。
- 既定値の型はキャスト先の型と同じである必要があります。
例
クエリ:
結果:
関連項目
toInt64
入力値をInt64型の値に変換します。エラーが発生した場合は例外を送出します。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値またはその文字列表現。
- 型 Float32/64 の値。
サポートされない型:
- Float32/64 の値を表す文字列(
NaNやInfを含む)。 - 2 進数および 16 進数の値を表す文字列(例:
SELECT toInt64('0xc0fe');)。
入力値が Int64 の範囲で表現できない場合、結果はオーバーフローまたはアンダーフローします。
これはエラーとはみなされません。
例: SELECT toInt64(9223372036854775808) == -9223372036854775808;
返される値
- 64 ビット整数値。Int64。
この関数はゼロ方向への丸めを使用します。つまり、数値の小数部を切り捨てます。
例
クエリ:
結果:
関連項目
toInt64OrZero
toInt64 と同様に、この関数は入力値を Int64 型の値に変換しますが、エラーが発生した場合は 0 を返します。
構文
引数
x— 数値の文字列表現。String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む Float32/64 の文字列表現。- 2 進数および 16 進数の文字列表現。例:
SELECT toInt64OrZero('0xc0fe');。
入力値が Int64 の表現範囲外の場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとはみなされません。
戻り値
- 成功した場合は 64 ビット整数値、それ以外の場合は
0。Int64。
この関数はゼロ方向への丸めを使用します。つまり、小数部分を切り捨てます。
例
クエリ:
結果:
関連項目
toInt64OrNull
toInt64 と同様に、この関数は入力値を Int64 型の値に変換しますが、エラーが発生した場合は NULL を返します。
構文
引数
x— 数値の文字列表現。Expression / String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(\N を返す):
NaNやInfを含む Float32/64 値の文字列表現。SELECT toInt64OrNull('0xc0fe');のような、2 進数および 16 進数値の文字列表現。
入力値が Int64 の表現可能範囲外の場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
返される値
この関数はゼロ方向の丸めを使用します。つまり、小数部分の桁を切り捨てます。
例
クエリ:
結果:
関連項目
toInt64OrDefault
toInt64 と同様に、この関数は入力値を Int64 型の値に変換しますが、エラー時にはデフォルト値を返します。
default 値が渡されていない場合、エラー時には 0 が返されます。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression / String。default(省略可) —Int64型への変換に失敗した場合に返される既定値。Int64。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値、またはその文字列表現。
- 型 Float32/64 の値。
既定値が返される引数:
- Float32/64 の値の文字列表現(
NaNおよびInfを含む)。 - 2 進数および 16 進数値の文字列表現(例:
SELECT toInt64OrDefault('0xc0fe', CAST('-1', 'Int64'));)。
入力値が Int64 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとはみなされません。
戻り値
- 成功した場合は 64 ビット整数値を返し、失敗した場合は指定されていれば既定値を、指定されていなければ
0を返します。Int64。
- この関数はゼロ方向への丸めを行い、小数部の桁を切り捨てます。
- 既定値の型はキャスト先の型と同じでなければなりません。
例
クエリ:
結果:
関連項目
toInt128
入力値を Int128 型の値に変換します。エラーが発生した場合は例外をスローします。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値またはその文字列表現。
- 型 Float32/64 の値。
サポートされない引数:
- Float32/64 の値を表す文字列(
NaNやInfを含むもの)。 - 2 進数および 16 進数値の文字列表現。例:
SELECT toInt128('0xc0fe');。
入力値が Int128 の範囲で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
戻り値
- 128 ビット整数値。Int128。
この関数はゼロ方向への丸めを使用します。つまり、小数部分の桁を切り捨てます。
例
クエリ:
結果:
関連項目
toInt128OrZero
toInt128 と同様に、この関数は入力値を Int128 型の値に変換しますが、エラーが発生した場合は 0 を返します。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression / String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む Float32/64 値の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toInt128OrZero('0xc0fe');。
入力値が Int128 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとはみなされません。
戻り値
- 成功時は 128 ビット整数値、失敗時は
0。Int128。
この関数はゼロ方向への丸めを使用します。つまり、小数部の桁を切り捨てます。
例
クエリ:
結果:
関連項目
toInt128OrNull
toInt128 と同様に、この関数は入力値を Int128 型の値に変換しますが、エラーが発生した場合は NULL を返します。
構文
引数
x— 数値の文字列表現。Expression / String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(\N を返す):
NaNやInfを含む Float32/64 値の文字列表現。- 2 進数値や 16 進数値の文字列表現。例:
SELECT toInt128OrNull('0xc0fe');。
入力値が Int128 の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
戻り値
この関数はゼロ方向への丸めを行います。つまり、小数部の桁を切り捨てます。
例
クエリ:
結果:
関連項目
toInt128OrDefault
toInt128 と同様に、この関数は入力値を Int128 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 値が渡されない場合、エラー時には 0 が返されます。
構文
引数
expr— 数値または数値の文字列表現を返す式。Expression / String。default(省略可能) —Int128型へのパースに失敗した場合に返されるデフォルト値。Int128。
サポートされる引数:
- (U)Int8/16/32/64/128/256。
- Float32/64。
- (U)Int8/16/32/128/256 の文字列表現。
デフォルト値が返される引数:
NaNやInfを含む Float32/64 値の文字列表現。- 2進数および16進数値の文字列表現。例:
SELECT toInt128OrDefault('0xc0fe', CAST('-1', 'Int128'));。
入力値が Int128 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
戻り値
- 成功した場合は 128ビット整数値を返し、そうでない場合は指定されていればデフォルト値、指定されていなければ
0を返します。Int128。
- この関数はゼロ方向への丸めを使用します。つまり、小数部分の桁を切り捨てます。
- デフォルト値の型はキャスト先の型と同じである必要があります。
例
クエリ:
結果:
関連項目
toInt256
入力値をInt256型の値に変換します。エラーが発生した場合は例外をスローします。
構文
引数
expr— 数値、または数値の文字列表現を返す式。Expression。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値または文字列表現。
- 型 Float32/64 の値。
サポートされない引数:
NaNやInfを含む、Float32/64 値の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toInt256('0xc0fe');。
入力値が Int256 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローした値になります。 これはエラーとは見なされません。
返される値
- 256 ビット整数値。Int256。
この関数はゼロ方向への丸めを使用します。これは、小数部を切り捨てることを意味します。
例
クエリ:
結果:
関連項目
toInt256OrZero
toInt256 と同様に、この関数は入力値を Int256 型の値に変換しますが、エラーが発生した場合は 0 を返します。
構文
引数
x— 数値を表す文字列。String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む Float32/64 値の文字列表現。- 2 進数および 16 進数値の文字列表現(例:
SELECT toInt256OrZero('0xc0fe');)。
入力値が Int256 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローが発生します。 これはエラーとは見なされません。
返される値
- 正常に変換された場合は 256 ビット整数値、それ以外の場合は
0。Int256。
この関数は0 への丸めを使用します。つまり、小数部の桁を切り捨てます。
例
クエリ:
結果:
関連項目
toInt256OrNull
toInt256 と同様に、この関数は入力値を型 Int256 の値に変換しますが、エラーが発生した場合は NULL を返します。
構文
引数
x— 数値の文字列表現。String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(\N を返す):
NaNやInfを含む Float32/64 値の文字列表現。- 2 進数および 16 進数値の文字列表現(例:
SELECT toInt256OrNull('0xc0fe');)。
入力値が Int256 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
戻り値
この関数はゼロ方向への丸めを使用し、小数部を切り捨てます。
例
クエリ:
結果:
関連項目
toInt256OrDefault
toInt256 と同様に、この関数は入力値を Int256 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 引数が指定されない場合、エラー時には 0 が返されます。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression / String。default(省略可能) —Int256型への変換に失敗した場合に返すデフォルト値。Int256。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値、またはその文字列表現。
- 型 Float32/64 の値。
デフォルト値が返される引数:
NaNやInfを含む、Float32/64 値の文字列表現- 2 進数および 16 進数値の文字列表現。例:
SELECT toInt256OrDefault('0xc0fe', CAST('-1', 'Int256'));
入力値が Int256 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
返される値
- 成功した場合は 256 ビットの整数値を返し、失敗した場合は指定されていればデフォルト値を、指定されていなければ
0を返します。Int256。
- この関数はゼロ方向への丸めを行い、小数部分の桁を切り捨てます。
- デフォルト値の型はキャスト先の型と同じでなければなりません。
例
クエリ:
結果:
関連項目
toUInt8
入力値を UInt8 型の値に変換します。エラーが発生した場合には例外をスローします。
構文
引数
expr— 数値、または数値の文字列表現を返す式。Expression。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値、またはその文字列表現。
- 型 Float32/64 の値。
サポートされない引数:
NaNやInfを含む、Float32/64 の値の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toUInt8('0xc0fe');。
入力値が UInt8 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローが発生します。
これはエラーとはみなされません。
例: SELECT toUInt8(256) == 0;。
返される値
- 8 ビットの符号なし整数値。UInt8。
この関数はゼロ方向への丸めを使用します。つまり、小数部は切り捨てられます。
例
クエリ:
結果:
関連項目
toUInt8OrZero
toUInt8 と同様に、この関数は入力値を UInt8 型の値に変換しますが、エラー時には 0 を返します。
構文
引数
x— 数値の文字列表現。String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む、通常の Float32/64 型の値の文字列表現。- 2 進数および 16 進数値の文字列表現(例:
SELECT toUInt8OrZero('0xc0fe');)。
入力値が UInt8 の範囲内で表現できない場合、結果にオーバーフローまたはアンダーフローが発生します。 これはエラーとは見なされません。
戻り値
- 成功した場合は 8 ビット符号なし整数値、失敗した場合は
0。UInt8。
この関数はゼロ方向への丸めを行い、数値の小数部分を切り捨てます。
例
クエリ:
結果:
関連項目
toUInt8OrNull
toUInt8 と同様に、この関数は入力値を UInt8 型の値に変換しますが、エラーが発生した場合は NULL を返します。
構文
引数
x— 数値の文字列表現。String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(\N を返す):
NaNやInfを含む Float32/64 型値の文字列表現。SELECT toUInt8OrNull('0xc0fe');のような、2進数および16進数値の文字列表現。
入力値が UInt8 の範囲内で表現できない場合、結果にオーバーフローまたはアンダーフローが発生します。 これはエラーとは見なされません。
戻り値
この関数はゼロ方向への丸めを使用します。つまり、小数桁を切り捨てます。
例
クエリ:
結果:
関連項目
toUInt8OrDefault
toUInt8 と同様に、この関数は入力値を型 UInt8 の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 値が渡されない場合、エラー時には 0 が返されます。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression / String。default(省略可能) —UInt8型への変換に失敗した場合に返されるデフォルト値。UInt8。
サポートされる引数:
- (U)Int8/16/32/64/128/256 型の値またはその文字列表現。
- Float32/64 型の値。
デフォルト値が返される引数:
NaNおよびInfを含む、Float32/64 値の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toUInt8OrDefault('0xc0fe', CAST('0', 'UInt8'));。
入力値が UInt8 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローが発生します。 これはエラーとは見なされません。
返される値
- 成功した場合は 8 ビット符号なし整数値を返し、そうでない場合は指定されていればデフォルト値、指定されていなければ
0を返します。UInt8。
- この関数は rounding towards zero を使用します。つまり、小数部の桁を切り捨てます。
- デフォルト値の型は、キャスト先の型と同じである必要があります。
例
クエリ:
結果:
関連項目
toUInt16
入力値をUInt16型の値に変換します。エラーが発生した場合は例外をスローします。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値、またはその文字列表現。
- 型 Float32/64 の値。
サポートされない引数:
NaNやInfを含む、Float32/64 値の文字列表現。- 2進数および16進数値の文字列表現。例:
SELECT toUInt16('0xc0fe');。
入力値が UInt16 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。
これはエラーとは見なされません。
例: SELECT toUInt16(65536) == 0;。
戻り値
- 16ビット符号なし整数値。UInt16。
この関数はゼロ方向への丸めを使用し、小数部を切り捨てます。
例
クエリ:
結果:
関連項目
toUInt16OrZero
toUInt16 と同様に、この関数は入力値を UInt16 型の値に変換しますが、エラーが発生した場合は 0 を返します。
構文
引数
x— 数値の文字列表現。String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(0 を返します):
NaNやInfを含む Float32/64 値の文字列表現。SELECT toUInt16OrZero('0xc0fe');のような、2 進数および 16 進数値の文字列表現。
入力値が UInt16 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
返り値
- 成功した場合は 16 ビット符号なし整数値、それ以外の場合は
0。UInt16。
この関数はゼロ方向への丸めを使用します。つまり、小数部分の桁は切り捨てられます。
例
クエリ:
結果:
関連項目
toUInt16OrNull
toUInt16 と同様に、この関数は入力値を UInt16 型の値に変換しますが、エラーが発生した場合は NULL を返します。
構文
引数
x— 数値の文字列表現。String。
サポートされる引数:
- (U)Int8/16/32/128/256 型の値の文字列表現。
サポートされない引数(\N を返す):
NaNやInfを含む Float32/64 値の文字列表現。- バイナリ値および 16 進値の文字列表現。例:
SELECT toUInt16OrNull('0xc0fe');。
入力値が UInt16 の範囲で表現できない場合、結果がオーバーフローまたはアンダーフローします。 これはエラーとはみなされません。
戻り値
この関数はゼロ方向への丸めを使用します。これは数値の小数部を切り捨てることを意味します。
例
クエリ:
結果:
関連項目
toUInt16OrDefault
toUInt16 と同様に、この関数は入力値を型 UInt16 の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 値が渡されない場合、エラー時には 0 が返されます。
構文
引数
expr— 数値、または数値の文字列表現を返す式。Expression / String。default(任意) —UInt16型への変換に失敗した場合に返されるデフォルト値。UInt16。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値またはその文字列表現。
- 型 Float32/64 の値。
デフォルト値が返される引数:
NaNやInfを含む、Float32/64 値の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toUInt16OrDefault('0xc0fe', CAST('0', 'UInt16'));。
入力値が UInt16 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
返される値
- 成功した場合は 16 ビット符号なし整数値。失敗した場合は、指定されていればデフォルト値、指定されていなければ
0を返します。UInt16。
- この関数はゼロ方向への丸めを使用します。これは、小数部を切り捨てることを意味します。
- デフォルト値の型は、キャスト先の型と同じでなければなりません。
例
クエリ:
結果:
関連項目
toUInt32
入力値を UInt32 型に変換します。エラーが発生した場合は例外をスローします。
構文
引数
expr— 数値または数値の文字列表現を返す式。Expression。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値または文字列表現。
- 型 Float32/64 の値。
サポートされない引数:
NaNやInfを含む、Float32/64 値の文字列表現。- バイナリ値および 16 進値の文字列表現。例:
SELECT toUInt32('0xc0fe');。
入力値が UInt32 の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。
これはエラーとは見なされません。
例:SELECT toUInt32(4294967296) == 0;
戻り値
- 32 ビット符号なし整数値。UInt32。
この関数はゼロ方向への丸めを使用します。これは、小数桁を切り捨てることを意味します。
例
クエリ:
結果:
関連項目
toUInt32OrZero
toUInt32 と同様に、この関数は入力値を UInt32 型に変換しますが、エラーが発生した場合は 0 を返します。
構文
引数
x— 数値の文字列表現。String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む Float32/64 値の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toUInt32OrZero('0xc0fe');。
入力値が UInt32 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローが発生します。 これはエラーとは見なされません。
戻り値
- 成功した場合は 32 ビット符号なし整数値、そうでない場合は
0。UInt32
この関数は rounding towards zero (ゼロ方向への丸め)を使用し、小数部の桁を切り捨てます。
例
クエリ:
結果:
関連項目
toUInt32OrNull
toUInt32 と同様に、この関数は入力値を型 UInt32 の値に変換しますが、エラーが発生した場合は NULL を返します。
構文
引数
x— 数値の文字列表現。String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(\N を返す):
- Float32/64 の値(
NaNやInfを含む)の文字列表現。 - 2 進数および 16 進数の値の文字列表現。例:
SELECT toUInt32OrNull('0xc0fe');。
入力値が UInt32 の範囲内で表現できない場合、結果でオーバーフローまたはアンダーフローが発生します。 これはエラーとはみなされません。
戻り値
この関数はゼロ方向への丸め を使用します。つまり、小数部の桁を切り捨てます。
例
クエリ:
結果:
関連項目
toUInt32OrDefault
toUInt32 と同様に、この関数は入力値を型 UInt32 の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 引数が指定されていない場合、エラー時には 0 が返されます。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression / String。default(省略可) —UInt32型への変換に失敗した場合に返すデフォルト値。UInt32。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値、またはその文字列表現。
- 型 Float32/64 の値。
次の場合はデフォルト値が返されます:
NaNやInfを含む、Float32/64 値の文字列表現。- 2 進数や 16 進数値の文字列表現。例:
SELECT toUInt32OrDefault('0xc0fe', CAST('0', 'UInt32'));。
入力値が UInt32 の範囲内で表現できない場合、結果のオーバーフローまたはアンダーフローが発生します。 これはエラーとは見なされません。
返される値
- 変換に成功した場合は 32 ビット符号なし整数値を返し、失敗した場合は渡されたデフォルト値を、デフォルト値が指定されていない場合は
0を返します。UInt32。
- この関数はゼロ方向への丸めを使用します。つまり、小数部の桁を切り捨てます。
- デフォルト値の型はキャスト先の型と同じである必要があります。
例
クエリ:
結果:
関連項目
toUInt64
入力値を UInt64 型の値に変換します。エラーが発生した場合は例外をスローします。
構文
引数
expr— 数値、または数値の文字列表現を返す式です。Expression。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値、またはその文字列表現。
- 型 Float32/64 の値。
サポートされない型:
- Float32/64 の値の文字列表現(
NaNやInfを含む)。 - 2 進数および 16 進数の値の文字列表現(例:
SELECT toUInt64('0xc0fe');)。
入力値が UInt64 の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。
これはエラーとは見なされません。
例: SELECT toUInt64(18446744073709551616) == 0;
戻り値
- 64 ビット符号なし整数値。UInt64。
この関数はゼロ方向への丸めを使用します。つまり、小数部の桁を切り捨てます。
例
クエリ:
結果:
関連項目
toUInt64OrZero
toUInt64 と同様に、この関数は入力値を UInt64 型の値に変換しますが、エラーが発生した場合は 0 を返します。
構文
引数
x— 数値を表す文字列。String。
サポートされる引数:
- (U)Int8/16/32/128/256 を表す文字列。
サポートされない引数(0 を返す):
NaNやInfを含む Float32/64 値を表す文字列。- 2 進数および 16 進数値を表す文字列。例:
SELECT toUInt64OrZero('0xc0fe');。
入力値が UInt64 の範囲内で表現できない場合、結果にオーバーフローまたはアンダーフローが発生します。 これはエラーとはみなされません。
戻り値
- 成功した場合は 64 ビットの符号なし整数値、それ以外の場合は
0。UInt64。
この関数はゼロ方向への丸めを使用します。これは、小数部の桁を切り捨てることを意味します。
例
クエリ:
結果:
関連項目
toUInt64OrNull
toUInt64 と同様に、この関数は入力値を UInt64 型の値に変換しますが、エラーが発生した場合は NULL を返します。
構文
引数
x— 数値の文字列表現。Expression / String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(\N を返す):
NaNやInfを含む Float32/64 値の文字列表現。SELECT toUInt64OrNull('0xc0fe');のような、バイナリ値や 16 進数値の文字列表現。
入力値が UInt64 の範囲で表現できない場合、結果のオーバーフローまたはアンダーフローが発生します。 これはエラーとはみなされません。
返される値
この関数はゼロ方向への丸めを使用するため、小数部分の桁は切り捨てられます。
例
クエリ:
結果:
関連項目
toUInt64OrDefault
toUInt64 と同様に、この関数は入力値を型 UInt64 の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 値が渡されていない場合は、エラーが発生した際に 0 が返されます。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression / String。defauult(オプション) —UInt64型への変換に失敗した場合に返すデフォルト値。UInt64。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値またはその文字列表現。
- 型 Float32/64 の値。
デフォルト値が返される引数:
NaNやInfを含む、Float32/64 値の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toUInt64OrDefault('0xc0fe', CAST('0', 'UInt64'));。
入力値が UInt64 の範囲内で表現できない場合、結果のオーバーフローまたはアンダーフローが発生します。 これはエラーとは見なされません。
戻り値
- 成功した場合は 64 ビット符号なし整数値、それ以外の場合は指定されていればデフォルト値、指定されていなければ
0を返します。UInt64。
- この関数はゼロへの丸めを使用します。つまり、小数部を切り捨てます。
- デフォルト値の型は、キャスト先の型と同じでなければなりません。
例
クエリ:
結果:
関連項目
toUInt128
入力値を UInt128 型の値に変換します。エラーが発生した場合は例外をスローします。
構文
引数
expr— 数値または数値を表す文字列を返す式。Expression。
サポートされる引数:
- (U)Int8/16/32/64/128/256 型の値または文字列表現。
- Float32/64 型の値。
サポートされない引数:
NaNやInfを含む、Float32/64 値の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toUInt128('0xc0fe');。
入力値が UInt128 の範囲で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
戻り値
- 128 ビット符号なし整数値。UInt128。
この関数はゼロ方向への丸めを行います。これは、小数桁を切り捨てることを意味します。
例
クエリ:
結果:
関連項目
toUInt128OrZero
toUInt128 と同様に、この関数は入力値を UInt128 型の値に変換しますが、エラー時には 0 を返します。
構文
引数
expr— 数値、または数値の文字列表現を返す式。Expression / String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(0 を返す):
NaNやInfを含む Float32/64 値の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toUInt128OrZero('0xc0fe');。
入力値を UInt128 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとはみなされません。
返される値
- 成功した場合は 128 ビット符号なし整数値、それ以外の場合は
0。UInt128。
この関数は0 への丸めを行います。つまり、小数部の桁を切り捨てます。
例
クエリ:
結果:
関連項目
toUInt128OrNull
toUInt128 と同様に、この関数は入力値を UInt128 型の値に変換しますが、エラーが発生した場合には NULL を返します。
構文
引数
x— 数値の文字列表現。Expression / String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(\N を返す):
NaNやInfを含む Float32/64 型値の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toUInt128OrNull('0xc0fe');。
入力値が UInt128 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローが発生します。 これはエラーとは見なされません。
返される値
この関数はゼロ方向への丸めを使用し、小数部の桁を切り捨てます。
例
クエリ:
結果:
関連項目
toUInt128OrDefault
toUInt128 と同様に、この関数は入力値を UInt128 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 値が渡されない場合、エラー時には 0 が返されます。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression / String。default(省略可) —UInt128型へのパースに失敗した場合に返すデフォルト値。UInt128。
サポートされる引数:
- (U)Int8/16/32/64/128/256。
- Float32/64。
- (U)Int8/16/32/128/256 の文字列表現。
デフォルト値が返される引数:
NaNやInfを含む Float32/64 の文字列表現。- 2 進数および 16 進数値の文字列表現。例:
SELECT toUInt128OrDefault('0xc0fe', CAST('0', 'UInt128'));。
入力値が UInt128 の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
返される値
- 成功した場合は 128 ビットの符号なし整数値。失敗した場合は指定されたデフォルト値、指定されていない場合は
0を返します。UInt128。
- この関数はゼロ方向への丸めを行い、小数部分の桁を切り捨てます。
- デフォルト値の型はキャスト先の型と同じでなければなりません。
例
クエリ:
結果:
関連項目
toUInt256
入力値をUInt256型の値に変換します。エラーが発生すると例外をスローします。
構文
引数
expr— 数値、または数値の文字列表現を返す式。Expression。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値または文字列表現。
- 型 Float32/64 の値。
サポートされない引数:
NaNやInfを含む、Float32/64 値の文字列表現。SELECT toUInt256('0xc0fe');のような、2進数および16進数値の文字列表現。
入力値が UInt256 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
戻り値
- 256ビット符号なし整数値。Int256。
この関数はゼロ方向への丸めを使用します。つまり、小数部を切り捨てます。
例
クエリ:
結果:
関連項目
toUInt256OrZero
toUInt256 と同様に、この関数は入力値を UInt256 型の値に変換しますが、エラーが発生した場合は 0 を返します。
構文
引数
x— 数値を表す文字列。String。
サポートされる引数:
- (U)Int8/16/32/128/256 を表す文字列。
サポートされない引数(0 を返す):
NaNやInfを含む Float32/64 値を表す文字列。- バイナリ値および 16 進数値を表す文字列(例:
SELECT toUInt256OrZero('0xc0fe');)。
入力値が UInt256 の表現範囲外の場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
戻り値
- 成功した場合は 256 ビット符号なし整数値、そうでない場合は
0を返します。UInt256。
この関数はゼロ方向への丸めを使用し、小数部を切り捨てます。
例
クエリ:
結果:
関連項目
toUInt256OrNull
toUInt256 と同様に、この関数は入力値を型 UInt256 の値に変換しますが、エラーが発生した場合には NULL を返します。
構文
引数
x— 数値を表す文字列。String。
サポートされる引数:
- (U)Int8/16/32/128/256 の文字列表現。
サポートされない引数(\N を返す):
NaNおよびInfを含む Float32/64 値の文字列表現。SELECT toUInt256OrNull('0xc0fe');のような、2進数および16進数値の文字列表現。
入力値が UInt256 の範囲内で表現できない場合、結果でオーバーフローまたはアンダーフローが発生します。 これはエラーとはみなされません。
返される値
この関数はゼロ方向への丸めを使用し、小数部を切り捨てます。
例
クエリ:
結果:
関連項目
toUInt256OrDefault
toUInt256 と同様に、この関数は入力値を UInt256 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
default 値が渡されていない場合、エラー時には 0 が返されます。
構文
引数
expr— 数値、または数値の文字列表現を返す式。Expression / String。default(省略可) —UInt256型への解析に失敗した場合に返されるデフォルト値。UInt256。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値または文字列表現。
- 型 Float32/64 の値。
デフォルト値が返される引数:
NaNやInfを含む Float32/64 値の文字列表現- 2 進数値および 16 進数値の文字列表現。例:
SELECT toUInt256OrDefault('0xc0fe', CAST('0', 'UInt256'));
入力値が UInt256 の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。
戻り値
- 正常に変換された場合は 256 ビット符号なし整数値、それ以外の場合は指定されていればデフォルト値、指定されていなければ
0を返します。UInt256。
- この関数はゼロ方向への丸めを行います。つまり、小数部を切り捨てます。
- デフォルト値の型は、キャスト先の型と同じである必要があります。
例
クエリ:
結果:
関連項目
toFloat32
入力値を Float32 型の値に変換します。エラーが発生した場合は例外をスローします。
構文
引数
expr— 数値、または数値を表す文字列表現を返す式。Expression。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値。
- (U)Int8/16/32/128/256 の文字列表現。
NaNおよびInfを含む Float32/64 型の値。NaNおよびInfを含む Float32/64 の文字列表現(大文字・小文字は区別しない)。
サポートされない引数:
- 2 進数および 16 進数値の文字列表現。例:
SELECT toFloat32('0xc0fe');。
戻り値
- 32 ビット浮動小数点数。Float32。
例
クエリ:
結果:
関連項目
toFloat32OrZero
toFloat32 と同様に、この関数は入力値を Float32 型の値に変換しますが、エラー発生時には 0 を返します。
構文
引数
x— 数値の文字列表現。String。
サポートされる引数:
- (U)Int8/16/32/128/256、Float32/64 の文字列表現。
サポートされない引数(0 を返す):
- 2 進数および 16 進数の文字列表現。例:
SELECT toFloat32OrZero('0xc0fe');。
戻り値
- 成功した場合は 32 ビット浮動小数点数(Float)の値、それ以外の場合は
0。Float32。
例
クエリ:
結果:
関連項目
toFloat32OrNull
toFloat32 と同様に、この関数は入力値を Float32 型の値に変換しますが、エラーが発生した場合には NULL を返します。
構文
引数
x— 数値を表す文字列。String。
サポートされる引数:
- (U)Int8/16/32/128/256、Float32/64 の文字列表現。
サポートされない引数(\N を返す):
- 2 進数および 16 進数値の文字列表現。例:
SELECT toFloat32OrNull('0xc0fe');。
戻り値
- 変換に成功した場合は 32 ビット浮動小数点値、それ以外は
\N。Float32。
例
クエリ:
結果:
関連項目
toFloat32OrDefault
toFloat32 と同様に、この関数は入力値を Float32 型の値に変換しますが、エラー発生時にはデフォルト値を返します。
default 値が渡されない場合、エラー発生時には 0 が返されます。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression / String。default(任意) — 型Float32へのパースに失敗した場合に返すデフォルト値。Float32。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値。
- (U)Int8/16/32/128/256 を表す文字列表現。
NaNおよびInfを含む Float32/64 型の値。NaNおよびInfを含む Float32/64 の文字列表現 (大文字小文字を区別しません)。
次の場合はデフォルト値が返されます:
- 2 進数および 16 進数形式の文字列表現。例:
SELECT toFloat32OrDefault('0xc0fe', CAST('0', 'Float32'));。
戻り値
- 成功した場合は 32 ビットの Float 値を返し、失敗した場合は渡されたデフォルト値を返します。デフォルト値が指定されていない場合は
0を返します。Float32。
例
クエリ:
結果:
関連項目
toFloat64
入力値を Float64 型の値に変換します。エラーが発生した場合には例外をスローします。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値。
- (U)Int8/16/32/128/256 の文字列表現。
- 型 Float32/64 の値(
NaNおよびInfを含む)。 - 型 Float32/64 の文字列表現(
NaNおよびInfを含み、大文字小文字は区別しない)。
サポートされない引数:
- バイナリ値および 16 進値の文字列表現(例:
SELECT toFloat64('0xc0fe');)。
戻り値
- 64 ビット浮動小数点値。Float64。
例
クエリ:
結果:
関連項目
toFloat64OrZero
toFloat64 と同様に、この関数は入力値を Float64 型の値に変換しますが、エラー時には 0 を返します。
構文
引数
x— 数値の文字列表現。String。
サポートされる引数:
- (U)Int8/16/32/128/256、Float32/64 の文字列表現。
サポートされない引数(0 を返します):
- 2 進数および 16 進数の値の文字列表現。例:
SELECT toFloat64OrZero('0xc0fe');。
戻り値
- 成功した場合は 64 ビットの Float 値、それ以外の場合は
0。Float64。
例
クエリ:
結果:
関連項目
toFloat64OrNull
toFloat64 と同様に、この関数は入力値を Float64 型の値に変換しますが、エラーが発生した場合は NULL を返します。
構文
引数
x— 数値を表す文字列。String。
サポートされる引数:
- (U)Int8/16/32/128/256、Float32/64 の文字列表現。
サポートされない引数(\N を返す):
- 2進数および16進数値の文字列表現。例:
SELECT toFloat64OrNull('0xc0fe');。
戻り値
- 正しく変換できた場合は 64-bit の浮動小数点値、それ以外の場合は
\N。Float64。
例
クエリ:
結果:
関連項目
toFloat64OrDefault
toFloat64 と同様に、この関数は入力値を Float64 型の値に変換しますが、エラーが発生した場合は既定値を返します。
default 値が渡されない場合、エラー時には 0 が返されます。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression / String。default(省略可) — 型Float64へのパースに失敗した場合に返されるデフォルト値。Float64。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値。
- (U)Int8/16/32/128/256 の文字列表現。
NaNおよびInfを含む Float32/64 型の値。NaNおよびInfを含む Float32/64 型の文字列表現(大文字小文字を区別しない)。
デフォルト値が返される引数:
- 2 進数および 16 進数値の文字列表現。例:
SELECT toFloat64OrDefault('0xc0fe', CAST('0', 'Float64'));。
戻り値
- 成功した場合は 64 ビット浮動小数点数。失敗した場合は、指定されていればデフォルト値、指定されていなければ
0を返す。Float64。
例
クエリ:
結果:
関連項目
toBFloat16
入力値を BFloat16 型に変換します。
エラーが発生した場合は例外をスローします。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値。
- (U)Int8/16/32/128/256 を表す文字列。
NaNおよびInfを含む Float32/64 型の値。NaNおよびInfを含む、Float32/64 を表す文字列(大文字小文字を区別しない)。
返される値
- 16 ビットの brain-float 型の値。BFloat16。
例
関連項目
toBFloat16OrZero
入力の文字列値を BFloat16 型の値に変換します。
文字列が浮動小数点数の値を表していない場合、関数はゼロを返します。
構文
引数
x— 数値を表す文字列。String。
サポートされる引数:
- 数値の文字列表現。
サポートされない引数(0 を返す):
- 2 進数および 16 進数の文字列表現。
- 数値型の値。
戻り値
- 16 ビットの brain-float 値。それ以外の場合は
0。BFloat16。
この関数は、文字列表現からの変換時に精度が失われてもエラーにせず、そのまま処理を続行します。
例
関連項目
toBFloat16OrNull
文字列の入力値を BFloat16 型の値に変換します。
ただし、その文字列が浮動小数点値を表していない場合、この関数は NULL を返します。
構文
引数
x— 数値を表す文字列。String。
サポートされる引数:
- 数値を表す文字列。
サポートされない引数(NULL を返す):
- 2進数および16進数を表す文字列。
- 数値型の引数。
戻り値
- 16ビットの brain-float 値。変換できない場合は
NULL(\N)。BFloat16。
この関数は、文字列表現から変換する際に、精度が暗黙的に失われることを許容します。
例
関連項目
toDate
引数を Date データ型に変換します。
引数が DateTime または DateTime64 の場合、時間情報を切り捨てて、DateTime の日付部分のみを残します。
引数が String の場合、Date または DateTime としてパースされます。DateTime としてパースされた場合は、日付部分が使用されます。
引数が数値で、UNIX タイムスタンプのように見える(65535 より大きい)場合は、現在のタイムゾーンで DateTime として解釈され、その後 Date に切り捨てられます。タイムゾーン引数は、この関数の第 2 引数として指定できます。Date への切り捨ては、タイムゾーンに依存します。
上記の例は、同じ UNIX タイムスタンプでも、タイムゾーンによって異なる日付として解釈されることを示しています。
引数が数値で、その値が 65536 未満の場合、それは 1970-01-01(最初の UNIX 日)からの経過日数として解釈され、Date に変換されます。これは Date データ型の内部数値表現に対応します。例:
この変換はタイムゾーンに依存しません。
引数が Date 型の範囲に収まらない場合、その結果は実装定義となり、サポートされる最大の日付に切り詰められるか、あるいはオーバーフローが発生する可能性があります。
関数 toDate は、別の表記でも記述できます。
toDateOrZero
無効な引数が渡された場合に Date の下限値を返す点を除き、toDate と同じです。String 型の引数のみがサポートされています。
例
クエリ:
結果:
toDateOrNull
toDate と同様ですが、無効な引数を受け取った場合は NULL を返します。String 型の引数のみがサポートされます。
例
クエリ:
結果:
toDateOrDefault
toDate と同様ですが、変換に失敗した場合はデフォルト値を返します。デフォルト値は、第 2 引数が指定されている場合はその値、指定されていない場合は Date の最小値です。
構文
例
クエリ:
結果:
toDateTime
入力値を DateTime 型に変換します。
構文
引数
expr が数値の場合、Unix エポックの開始時点からの経過秒数(Unix タイムスタンプ)として解釈されます。
expr が String の場合、Unix タイムスタンプとして、または日付/日時の文字列表現として解釈されることがあります。
このため、短い数値文字列(4 桁以下)のパースは曖昧さを避けるために明示的に無効化されています。たとえば、文字列 '1999' は、年(Date / DateTime の不完全な文字列表現)としても、Unix タイムスタンプとしても解釈できてしまいます。より長い数値文字列は許可されます。
返される値
- 日時。DateTime
例
クエリ:
結果:
toDateTimeOrZero
toDateTime と同様ですが、無効な引数を受け取った場合は DateTime の最小値を返します。String 型の引数のみがサポートされています。
例
クエリ:
結果:
toDateTimeOrNull
toDateTime と同様ですが、無効な引数が渡された場合は NULL を返します。String 型の引数のみがサポートされます。
例
クエリ:
結果:
toDateTimeOrDefault
toDateTime と同様ですが、変換に失敗した場合はデフォルト値を返します。デフォルト値は、3 番目の引数が指定されていればその値、指定されていない場合は DateTime の下限値です。
構文
例
クエリ:
結果:
toDate32
引数を Date32 データ型に変換します。値が範囲外の場合、toDate32 は Date32 でサポートされる範囲の境界値を返します。引数が Date 型の場合は、その型で取り得る値の範囲の境界も考慮されます。
構文
引数
返される値
- カレンダー上の日付。Date32 型。
例
- 値が範囲内にある場合:
- 値が許容範囲外である:
- Date 引数を指定する場合:
toDate32OrZero
toDate32 と同様ですが、無効な引数を受け取った場合は Date32 の最小値を返します。
例
クエリ:
結果:
toDate32OrNull
toDate32 と同様ですが、無効な引数が渡された場合は NULL を返します。
例
クエリ:
結果:
toDate32OrDefault
引数を Date32 データ型に変換します。値が範囲外の場合、toDate32OrDefault は Date32 でサポートされる下限値を返します。引数が Date 型の場合は、その型で取り得る範囲が考慮されます。無効な引数が渡された場合は、デフォルト値を返します。
例
クエリ:
結果:
toDateTime64
入力値を DateTime64 型の値に変換します。
構文
引数
expr— 値。String、UInt32、Float または DateTime。scale- ティックサイズ(精度):10-precision 秒。有効範囲:[0 : 9]。timezone(optional) - 指定した datetime64 オブジェクトのタイムゾーン。
返り値
- サブ秒精度を持つ日付と時刻。DateTime64。
例
- 値が有効範囲内にある場合:
- 精度指定付きの decimal 型として:
小数点がない場合、その値は秒単位の Unix タイムスタンプとして解釈されます:
timezoneを指定する:
toDateTime64OrZero
toDateTime64 と同様に、この関数は入力値を DateTime64 型の値に変換しますが、無効な引数を受け取った場合は DateTime64 の最小値を返します。
構文
引数
expr— 値。String、UInt32、Float または DateTime。scale- ティックサイズ(精度)。10-precision 秒を単位とします。有効な範囲: [ 0 : 9 ]。timezone(任意) - 指定された DateTime64 オブジェクトのタイムゾーン。
返される値
- サブ秒精度を持つ暦日と時刻。それ以外の場合は
DateTime64の最小値である1970-01-01 01:00:00.000。DateTime64。
例
クエリ:
結果:
関連項目
toDateTime64OrNull
toDateTime64 と同様に、この関数は入力値を DateTime64 型の値に変換しますが、無効な引数を受け取った場合は NULL を返します。
構文
引数
expr— 値。String、UInt32、Float、または DateTime。scale- ティックサイズ(精度):10-precision 秒。有効範囲:[ 0 : 9 ]。timezone(省略可能)- 指定された DateTime64 オブジェクトのタイムゾーン。
返される値
- サブ秒精度を持つ暦日と時刻、それ以外の場合は
NULL。DateTime64/NULL。
例
クエリ:
結果:
関連項目
toDateTime64OrDefault
toDateTime64 と同様に、この関数は入力値を DateTime64 型の値に変換しますが、 不正な引数を受け取った場合には、DateTime64 型のデフォルト値、 または指定されたデフォルト値を返します。
構文
引数
expr— 値。String、UInt32、Float、または DateTime。scale- ティックサイズ(精度)。10-precision 秒単位。有効な範囲: [ 0 : 9 ]。timezone(省略可) - 指定された DateTime64 オブジェクトのタイムゾーン。default(省略可) - 無効な引数を受け取った場合に返すデフォルト値。DateTime64。
返される値
- サブ秒精度を持つカレンダー日付と時刻を返します。そうでない場合は
DateTime64の最小値、または指定されていればdefaultの値を返します。DateTime64。
例
クエリ:
結果:
関連項目
toDecimal32
入力値をスケールが S の型 Decimal(9, S) の値に変換します。エラーが発生した場合は、例外をスローします。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression。S— 0 から 9 の範囲のスケールパラメータで、数値の小数部が取りうる桁数を指定します。UInt8。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値、またはその文字列表現。
- 型 Float32/64 の値、またはその文字列表現。
サポートされない引数:
- Float32/64 の
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 となるためです。
文字列入力を使用すると、演算は内部の整数型を用いて行われます: toDecimal32('1.15', 2) = 1.15
返される値
- 型
Decimal(9, S)の値。Decimal32(S)。
例
クエリ:
結果:
関連項目
toDecimal32OrZero
toDecimal32 と同様に、この関数は入力値を Decimal(9, S) 型の値に変換しますが、エラーが発生した場合は 0 を返します。
構文
引数
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の文字列表現。
- 型 Float32/64 の文字列表現。
サポートされない引数:
- Float32/64 の値
NaNおよびInfの文字列表現。 - 2 進数および 16 進数表記の文字列表現。例:
SELECT toDecimal32OrZero('0xc0fe', 1);。
expr の値が Decimal32 の範囲 ( -1 * 10^(9 - S), 1 * 10^(9 - S) ) を超えると、オーバーフローが発生する可能性があります。
小数部の桁が多すぎる場合は、余分な桁は切り捨てられます(丸めは行われません)。
整数部の桁が多すぎる場合はエラーになります。
戻り値
- 正常に変換された場合は型
Decimal(9, S)の値、それ以外の場合は小数部がS桁の0。Decimal32(S)。
例
クエリ:
結果:
関連項目
toDecimal32OrNull
toDecimal32 と同様に、この関数は入力値を Nullable(Decimal(9, S)) 型の値に変換しますが、エラーが発生した場合には 0 を返します。
構文
引数
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の文字列表現。
- 型 Float32/64 の文字列表現。
サポートされない引数:
- Float32/64 の値
NaNおよびInfの文字列表現。 - 2 進数および 16 進数値の文字列表現。例:
SELECT toDecimal32OrNull('0xc0fe', 1);。
expr の値が Decimal32 の範囲 ( -1 * 10^(9 - S), 1 * 10^(9 - S) ) を超えると、オーバーフローが発生する可能性があります。
小数部の過剰な桁は切り捨てられます(丸めは行われません)。
整数部の過剰な桁はエラーになります。
返される値
- 正常に変換できた場合は型
Nullable(Decimal(9, S))の値、それ以外の場合は同じ型の値NULL。Decimal32(S)。
使用例
クエリ:
結果:
関連項目
toDecimal32OrDefault
toDecimal32 と同様に、この関数は入力値を Decimal(9, S) 型の値に変換しますが、エラー時にはデフォルト値を返します。
構文
引数
expr— 数値の文字列表現。String。S— 0〜9 のスケールパラメーター。数値の小数部が持てる桁数を指定します。UInt8。default(任意) —Decimal32(S)型への変換に失敗した場合に返すデフォルト値。Decimal32(S)。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の文字列表現。
- 型 Float32/64 の文字列表現。
サポートされない引数:
- Float32/64 型の値
NaNおよびInfの文字列表現。 - 2 進数および 16 進数値の文字列表現。例:
SELECT toDecimal32OrDefault('0xc0fe', 1);。
expr の値が Decimal32 の範囲 ( -1 * 10^(9 - S), 1 * 10^(9 - S) ) を超えると、オーバーフローが発生する可能性があります。
小数部の過剰な桁は切り捨てられます(丸めは行われません)。
整数部の過剰な桁はエラーになります。
変換時に余分な桁が切り捨てられるため、Float32/Float64 入力を扱う場合、演算が浮動小数点命令で実行されることにより予期しない動作となる可能性があります。
例えば、toDecimal32OrDefault(1.15, 2) は 1.14 と等しくなります。これは、浮動小数点では 1.15 * 100 が 114.99 となるためです。
演算で基になる整数型を使用するには、String 型の入力を使用してください: toDecimal32OrDefault('1.15', 2) = 1.15
戻り値
- 成功した場合は
Decimal(9, S)型の値を返し、失敗した場合は指定されていればデフォルト値を、指定されていなければ0を返します。Decimal32(S)。
例
クエリ:
結果:
関連項目
toDecimal64
入力値をスケール S を持つ Decimal(18, S) 型の値に変換します。エラーが発生した場合は例外をスローします。
構文
引数
expr— 数値、または数値を表す文字列を返す式。Expression。S— 0 〜 18 の範囲のスケールパラメータで、数値の小数部が持てる桁数を指定します。UInt8。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値、またはその文字列表現。
- 型 Float32/64 の値、またはその文字列表現。
サポートされない引数:
- Float32/64 の値
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
戻り値
- 型
Decimal(18, S)の値。Decimal64(S)。
例
クエリ:
結果:
関連項目
toDecimal64OrZero
toDecimal64 と同様に、この関数は入力値を Decimal(18, S) 型の値に変換しますが、エラーが発生した場合は 0 を返します。
構文
引数
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の文字列表現。
- 型 Float32/64 の文字列表現。
サポートされない引数:
- Float32/64 型の値
NaNおよびInfの文字列表現。 - 2進数および16進数値の文字列表現。例:
SELECT toDecimal64OrZero('0xc0fe', 1);。
expr の値が Decimal64 の範囲 ( -1 * 10^(18 - S), 1 * 10^(18 - S) ) を超えると、オーバーフローが発生する可能性があります。
小数部の桁数が多すぎる場合、余分な桁は切り捨てられます(丸められません)。
整数部の桁数が多すぎる場合はエラーになります。
返される値
- 成功した場合は型
Decimal(18, S)の値、そうでない場合は小数S桁を持つ0。Decimal64(S)。
例
クエリ:
結果:
関連項目
toDecimal64OrNull
toDecimal64 と同様に、この関数は入力値を Nullable(Decimal(18, S)) 型の値に変換します。ただし、エラーが発生した場合は 0 を返します。
構文
引数
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の文字列表現。
- 型 Float32/64 の文字列表現。
サポートされない引数:
- Float32/64 の値
NaNおよびInfの文字列表現。 - 2 進数および 16 進数値の文字列表現。例:
SELECT toDecimal64OrNull('0xc0fe', 1);。
expr の値が Decimal64 の範囲 ( -1 * 10^(18 - S), 1 * 10^(18 - S) ) を超えるとオーバーフローが発生する可能性があります。
小数部の桁数が多すぎる場合は、余分な桁は切り捨てられます(丸めは行われません)。
整数部の桁数が多すぎる場合はエラーになります。
返される値
- 正常に変換された場合は型
Nullable(Decimal(18, S))の値。それ以外の場合は同じ型の値NULL。Decimal64(S)。
例
クエリ:
結果:
関連項目
toDecimal64OrDefault
toDecimal64 と同様に、この関数は入力値を Decimal(18, S) 型の値に変換しますが、エラーが発生した場合は既定値を返します。
構文
引数
expr— 数値の文字列表現。String。S— 0〜18 の範囲のスケールパラメータ。数値の小数部に含めることができる桁数を指定します。UInt8。default(省略可能) —Decimal64(S)型への変換に失敗した場合に返されるデフォルト値。Decimal64(S)。
サポートされる引数:
- (U)Int8/16/32/64/128/256 型の文字列表現。
- Float32/64 型の文字列表現。
サポートされない引数:
- Float32/64 の値
NaNおよびInfの文字列表現。 - 2 進数および 16 進数の文字列表現。例:
SELECT toDecimal64OrDefault('0xc0fe', 1);。
expr の値が Decimal64 の範囲 ( -1 * 10^(18 - S), 1 * 10^(18 - S) ) を超えると、オーバーフローが発生する可能性があります。
小数部の過剰な桁は切り捨てられます (丸めは行われません)。
整数部の桁数が多すぎる場合はエラーになります。
変換時には余分な桁が切り捨てられ、Float32/Float64 の入力を扱う際には、演算が浮動小数点命令で実行されるため、予期しない動作をする可能性があります。
例えば、toDecimal64OrDefault(1.15, 2) は 1.14 と等しくなります。これは、浮動小数点演算では 1.15 * 100 が 114.99 となるためです。
文字列入力を使用すると、演算は内部の整数型を用いて行われます: toDecimal64OrDefault('1.15', 2) = 1.15
戻り値
- 成功した場合は
Decimal(18, S)型の値。失敗した場合は指定されていればデフォルト値、指定されていなければ0を返します。Decimal64(S)。
例
クエリ:
結果:
関連項目
toDecimal128
入力値をスケール S を持つ型 Decimal(38, S) の値に変換します。エラーが発生した場合は例外を送出します。
構文
引数
expr— 数値、または数値の文字列表現を返す式。Expression を参照。S— 0〜38 のスケールパラメータで、数値の小数部が持てる桁数を指定します。UInt8。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値、またはその文字列表現。
- 型 Float32/64 の値、またはその文字列表現。
サポートされない引数:
- Float32/64 の値
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
返される値
- 型
Decimal(38, S)の値。Decimal128(S)。
例
クエリ:
結果:
関連項目
toDecimal128OrZero
toDecimal128 と同様に、この関数は入力値を Decimal(38, S) 型の値に変換しますが、エラーが発生した場合は 0 を返します。
構文
引数
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の文字列表現。
- 型 Float32/64 の文字列表現。
サポートされない引数:
- Float32/64 の値
NaNおよびInfの文字列表現。 - 2 進数および 16 進数値の文字列表現(例:
SELECT toDecimal128OrZero('0xc0fe', 1);)。
expr の値が Decimal128 の範囲 ( -1 * 10^(38 - S), 1 * 10^(38 - S) ) を超える場合、オーバーフローが発生する可能性があります。
小数部分の桁数が多すぎる場合は切り捨てられます(丸めは行われません)。
整数部分の桁数が多すぎる場合はエラーになります。
戻り値
- 成功した場合は
Decimal(38, S)型の値、それ以外の場合は小数点以下S桁の0。Decimal128(S)。
例
クエリ:
結果:
関連項目
toDecimal128OrNull
toDecimal128 と同様に、この関数は入力値を Nullable(Decimal(38, S)) 型の値に変換します。ただし、エラーが発生した場合は 0 を返します。
構文
引数
サポートされる引数:
- (U)Int8/16/32/64/128/256 型の文字列表現。
- Float32/64 型の文字列表現。
サポートされない引数:
- 値
NaNおよびInfの Float32/64 型の文字列表現。 - 2進数および16進数の値の文字列表現。例:
SELECT toDecimal128OrNull('0xc0fe', 1);。
expr の値が Decimal128 の範囲 ( -1 * 10^(38 - S), 1 * 10^(38 - S) ) を超えると、オーバーフローが発生します。
小数部の過剰な桁は切り捨てられます(丸めは行われません)。
整数部の桁が多すぎる場合はエラーになります。
戻り値
- 正常に変換された場合は型
Nullable(Decimal(38, S))の値、それ以外の場合は同じ型のNULL値。Decimal128(S)。
例
クエリ:
結果:
関連項目
toDecimal128OrDefault
toDecimal128 と同様に、この関数は入力値を Decimal(38, S) 型の値に変換しますが、エラーが発生した場合にはデフォルト値を返します。
構文
引数
expr— 数値を表す文字列表現。String。S— 0 から 38 の間のスケールパラメータ。数値の小数部が取りうる桁数を指定します。UInt8。default(任意) —Decimal128(S)型へのパースに失敗した場合に返すデフォルト値。Decimal128(S)。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の文字列表現。
- 型 Float32/64 の文字列表現。
サポートされない引数:
- Float32/64 の値
NaNおよびInfの文字列表現。 - 2 進数および 16 進数値の文字列表現。例:
SELECT toDecimal128OrDefault('0xc0fe', 1);。
expr の値が Decimal128 の範囲 ( -1 * 10^(38 - S), 1 * 10^(38 - S) ) を超えるとオーバーフローが発生する可能性があります。
小数部の余分な桁は切り捨てられます (丸められません)。
整数部の余分な桁はエラーの原因になります。
変換時には余分な桁が切り捨てられ、Float32/Float64 の入力に対しては浮動小数点命令で演算が行われるため、想定外の動作となる可能性があります。
例えば、toDecimal128OrDefault(1.15, 2) は 1.14 と等しくなります。これは、浮動小数点では 1.15 * 100 が 114.99 となるためです。
演算で内部の整数型を使用させるには、String 入力を使用してください: toDecimal128OrDefault('1.15', 2) = 1.15
戻り値
- 成功した場合は
Decimal(38, S)型の値。失敗した場合は、指定されていればデフォルト値を、指定されていなければ0を返します。Decimal128(S)。
例
クエリ:
結果:
関連項目
toDecimal256
入力値を、スケール S を持つ Decimal(76, S) 型の値に変換します。エラーが発生した場合は例外をスローします。
構文
引数
expr— 数値、または数値の文字列表現を返す式。Expression。S— 0〜76 のスケールパラメータ。数値の小数部に含めることができる桁数を指定します。UInt8。
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値または文字列表現。
- 型 Float32/64 の値または文字列表現。
サポートされない引数:
- 型 Float32/64 の値
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
戻り値
- 型
Decimal(76, S)の値。Decimal256(S)。
例
クエリ:
結果:
関連項目
toDecimal256OrZero
toDecimal256 と同様に、この関数は入力値を Decimal(76, S) 型の値に変換しますが、エラーが発生した場合は 0 を返します。
構文
引数
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の文字列表現。
- 型 Float32/64 の文字列表現。
サポートされない引数:
- Float32/64 の値
NaNおよびInfの文字列表現。 - 2 進数および 16 進数値の文字列表現(例:
SELECT toDecimal256OrZero('0xc0fe', 1);)。
expr の値が Decimal256 の範囲 ( -1 * 10^(76 - S), 1 * 10^(76 - S) ) を超えるとオーバーフローが発生します。
小数部の過剰な桁は切り捨てられます(丸めはされません)。
整数部の過剰な桁はエラーになります。
戻り値
- 正常終了時は型
Decimal(76, S)の値、それ以外の場合は小数部がS桁の0。Decimal256(S)。
例
クエリ:
結果:
関連項目
toDecimal256OrNull
toDecimal256 と同様に、この関数は入力値を Nullable(Decimal(76, S)) 型の値に変換しますが、エラーが発生した場合には 0 を返します。
構文
引数
サポートされる引数:
- 型 (U)Int8/16/32/64/128/256 の値を表す文字列。
- 型 Float32/64 の値を表す文字列。
サポートされない引数:
- Float32/64 の値
NaNおよびInfを表す文字列。 - バイナリ値および 16 進数値を表す文字列。例:
SELECT toDecimal256OrNull('0xc0fe', 1);。
expr の値が Decimal256 の範囲 ( -1 * 10^(76 - S), 1 * 10^(76 - S) ) を超えると、オーバーフローが発生する可能性があります。
小数部の桁数が多すぎる場合、その超過分は切り捨てられます(丸めは行われません)。
整数部の桁数が多すぎる場合は、エラーが発生します。
返される値
- 正常に変換された場合は
Nullable(Decimal(76, S))型の値。失敗した場合は同じ型のNULL値。 Decimal256(S)。
例
クエリ:
結果:
関連項目
toDecimal256OrDefault
toDecimal256 と同様に、この関数は入力値を Decimal(76, S) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。
構文
引数
expr— 数値の文字列表現。String。S— 0 から 76 の間のスケールパラメーター。数値の小数部が持てる桁数を指定します。UInt8。default(任意) —Decimal256(S)型へのパースに失敗した場合に返すデフォルト値。Decimal256(S)。
サポートされる引数:
- (U)Int8/16/32/64/128/256 型の文字列表現。
- Float32/Float64 型の文字列表現。
サポートされない引数:
- Float32/Float64 の値
NaNおよびInfの文字列表現。 - 2 進数および 16 進数値の文字列表現。例:
SELECT toDecimal256OrDefault('0xc0fe', 1);。
expr の値が Decimal256 の範囲を超えるとオーバーフローが発生する可能性があります: ( -1 * 10^(76 - S), 1 * 10^(76 - S) )。
小数部の余分な桁は切り捨てられます (丸めは行われません)。
整数部の余分な桁はエラーの原因になります。
変換時には余分な桁が切り捨てられ、Float32/Float64 の入力を扱う場合、処理は浮動小数点命令を使用して行われるため、想定外の動作になる可能性があります。
例えば、toDecimal256OrDefault(1.15, 2) は 1.14 と等しくなります。これは、浮動小数点において 1.15 * 100 が 114.99 となるためです。
演算に基になる整数型を使用させるには、String 入力を使用します: toDecimal256OrDefault('1.15', 2) = 1.15
返される値
- 正常に変換できた場合は
Decimal(76, S)型の値。失敗した場合は、指定されていればデフォルト値、指定されていなければ0を返します。Decimal256(S)。
例
クエリ:
結果:
関連項目
toString
値を文字列表現に変換します。 DateTime 型の引数に対しては、タイムゾーン名を指定する 2 番目の String 型引数を取ることができます。
構文
引数
戻り値
- 入力値の文字列表現を返します。
String。
例
使用例
toFixedString
String 型の引数を FixedString(N) 型(長さ N の固定長文字列)に変換します。 文字列のバイト数が N より少ない場合は、右側がヌルバイトで埋められます。文字列のバイト数が N を超える場合は、例外が送出されます。
構文
引数
戻り値
sを長さ N の固定長文字列にしたもの。FixedString。
例
クエリ:
結果:
toStringCutToZero
String または FixedString 型の引数を受け取り、最初に見つかったゼロバイト以降を切り捨てた String を返します。
構文
例
クエリ:
結果:
クエリ:
結果:
toDecimalString
数値を、出力時の小数桁数をユーザーが指定できる String 型の値に変換します。
構文
引数
返される値
- 入力値を、指定された小数桁数(scale)で表現した String。 要求されたスケールが元の数値のスケールより小さい場合、数値は一般的な算術規則に従って丸められます。
例
クエリ:
結果:
reinterpretAsUInt8
入力値を UInt8 型の値として解釈し、バイト列の再解釈を行います。CAST と異なり、この関数は元の値を保持しようとはしません。ターゲット型が入力型を表現できない場合、出力は意味を成さない値になります。
構文
パラメーター
返される値
- UInt8 として再解釈された値
x。UInt8。
例
クエリ:
結果:
reinterpretAsUInt16
入力値を UInt16 型の値として扱い、バイト列の再解釈を行います。CAST と異なり、この関数は元の値を保持しようとは試みません。対象の型が入力の値を表現できない場合、出力される値は意味を持ちません。
構文
パラメーター
戻り値
- UInt16 として再解釈された値
x。UInt16。
例
クエリ:
結果:
reinterpretAsUInt32
入力値を UInt32 型の値として扱い、バイト単位で再解釈します。CAST と異なり、この関数は元の値を保持しようとしません。対象の型が入力値を表現できない場合、出力は意味のない値になります。
構文
パラメーター
戻り値
- UInt32 として再解釈された値
x。UInt32。
例
クエリ:
結果:
reinterpretAsUInt64
入力値を UInt64 型の値として扱うことで、バイト列を再解釈します。CAST と異なり、この関数は元の値を保持しようとは試みません。対象の型が入力値を表現できない場合、出力結果は意味を持ちません。
構文
パラメータ
戻り値
- UInt64 として再解釈された
xの値。UInt64。
例
クエリ:
結果:
reinterpretAsUInt128
入力値を UInt128 型の値として扱い、バイト列として再解釈します。CAST と異なり、この関数は元の値を保持しようとはしません。対象の型で入力の値を表現できない場合、出力は意味のある値にはなりません。
構文
パラメーター
戻り値
- 値
xを UInt128 として再解釈した結果を返します。UInt128。
例
クエリ:
結果:
reinterpretAsUInt256
入力値を UInt256 型の値として扱い、バイト単位で再解釈を行います。CAST と異なり、この関数は元の値を保持しようとはしません。対象の型が入力値を表現できない場合、出力は無意味な値になります。
構文
パラメータ
戻り値
- UInt256 として再解釈された
xの値。UInt256。
例
クエリ:
結果:
reinterpretAsInt8
入力値を Int8 型の値として扱い、バイト列として再解釈を行います。CAST と異なり、この関数は元の値を保持しようとはしません。対象の型が入力値を表現できない場合、出力は無意味な値になります。
構文
パラメーター
返される値
- Int8 として再解釈された値
x。Int8。
例
クエリ:
結果:
reinterpretAsInt16
入力値を Int16 型の値として扱うことで、バイトレベルで再解釈を行います。CAST と異なり、この関数は元の値を保持しようとはしません。対象の型が入力の型を表現できない場合、出力は意味のない値になります。
構文
パラメータ
戻り値
- 値
xを Int16 として再解釈した値。Int16。
例
クエリ:
結果:
reinterpretAsInt32
入力値を Int32 型の値として扱い、そのバイト表現を再解釈します。CAST と異なり、この関数は元の値を保持しようとしません。ターゲット型が入力値を表現できない場合、出力には意味がありません。
構文
パラメーター
返される値
- 値
xを Int32 としてバイト列再解釈した結果。Int32。
例
クエリ:
結果:
reinterpretAsInt64
入力値を Int64 型の値として扱うことで、バイト列として再解釈を行います。CAST と異なり、この関数は元の値を保持しようとはしません。対象の型で入力値を表現できない場合、出力は意味のない値になります。
構文
パラメーター
返される値
- Int64 として再解釈した
xの値。Int64。
例
クエリ:
結果:
reinterpretAsInt128
入力値を Int128 型の値として扱い、バイト列として再解釈します。CAST と異なり、この関数は元の値を保持しようとはしません。対象の型で入力値を表現できない場合、その出力は意味のない値になります。
構文
パラメータ
返される値
- 値
xを Int128 としてバイト単位で再解釈した結果。Int128。
例
クエリ:
結果:
reinterpretAsInt256
入力値を Int256 型の値として解釈し直し、バイト列の再解釈を行います。CAST と異なり、この関数は元の値の保持を試みません。対象の型が入力の型を表現できない場合、出力結果は無意味な値になります。
構文
パラメーター
返される値
- 値
xをバイト表現のまま Int256 として再解釈した結果。Int256。
例
クエリ:
結果:
reinterpretAsFloat32
入力値を Float32 型の値として解釈し、バイト列の再解釈を行います。CAST と異なり、この関数は元の値を保持しようとはしません。対象の型が入力の型を表現できない場合、出力には意味がありません。
構文
パラメータ
返される値
- Float32 型として再解釈された値
x。Float32。
例
クエリ:
結果:
reinterpretAsFloat64
入力値を Float64 型の値として扱い、バイト列の再解釈を行います。CAST と異なり、この関数は元の値を保持しようとはしません。対象の型が入力値の型を表現できない場合、出力は無意味な値になります。
構文
パラメータ
戻り値
- 値
xを Float64 として再解釈したもの。Float64。
例
クエリ:
結果:
reinterpretAsDate
文字列、FixedString、または数値を受け取り、そのバイト列をホストのバイト順序(リトルエンディアン)での数値として解釈します。解釈された数値を Unix Epoch の開始時点からの日数として解釈し、その日数に対応する日付を返します。
構文
パラメーター
戻り値
- Date 型。Date。
実装の詳細
指定された文字列が十分な長さでない場合は、この関数は文字列が必要な数のヌルバイトで埋められているかのように動作します。文字列が必要な長さを超える場合は、余分なバイトは無視されます。
例
クエリ:
結果:
reinterpretAsDateTime
これらの関数は文字列を受け取り、その文字列の先頭にあるバイト列をホスト順序(リトルエンディアン)の数値として解釈します。Unixエポックの開始時点からの経過秒数として解釈した日時を返します。
構文
パラメーター
戻り値
- 日付と時刻。DateTime。
実装の詳細
与えられた文字列が十分な長さでない場合、この関数は不足分が必要な数のヌルバイトで埋められているかのように動作します。文字列が必要以上に長い場合、余分なバイトは無視されます。
例
クエリ:
結果:
reinterpretAsString
この関数は数値、日付、または日時を受け取り、対応する値をホストのバイトオーダー(リトルエンディアン)で表したバイト列を含む文字列を返します。末尾の null バイトは削除されます。例えば、UInt32 型の値 255 は 1 バイト長の文字列になります。
構文
パラメーター
戻り値
xを表現するバイト列からなる文字列。String。
例
クエリ:
結果:
reinterpretAsFixedString
この関数は数値、日付、または日時を受け取り、対応する値をホストのバイトオーダー(リトルエンディアン)で表すバイト列を含む FixedString を返します。末尾にあるヌルバイトは削除されます。たとえば、UInt32 型の値 255 は、長さ 1 バイトの FixedString になります。
構文
パラメーター
返される値
xを表すバイト列を含む固定長文字列型の値。FixedString。
例
クエリ:
結果:
reinterpretAsUUID
ここで挙げている UUID 関数に加えて、専用の UUID 関数ドキュメント も用意されています。
16 バイトの文字列を受け取り、前半と後半の 8 バイトずつをリトルエンディアンのバイト順序で解釈して UUID を返します。文字列が十分な長さでない場合、この関数は必要な数のヌルバイトが末尾にパディングされたものとして動作します。文字列が 16 バイトより長い場合、末尾の余分なバイトは無視されます。
構文
引数
fixed_string— ビッグエンディアンのバイト列。FixedString。
戻り値
- UUID 型の値。UUID。
使用例
文字列から UUID への変換。
クエリ:
結果:
String 型と UUID 型を相互に変換する。
クエリ:
結果:
reinterpret
x の値のメモリ上のバイト列をそのまま利用し、それを変換先の型として再解釈します。
構文
引数
x— 任意の型。type— 変換先の型。配列の場合、その要素型は固定長型でなければなりません。
戻り値
- 変換先の型の値。
例
クエリ:
結果:
クエリ:
結果:
CAST
入力値を指定されたデータ型に変換します。reinterpret 関数と異なり、CAST は新しいデータ型を使って同じ値を表現しようとします。変換できない場合は例外が送出されます。
複数の構文がサポートされています。
構文
引数
x— 変換する値。任意の型の値を指定できます。T— 変換先のデータ型名。String。t— 変換先のデータ型。
戻り値
- 変換された値。
入力値が変換先の型の範囲内に収まらない場合、結果はオーバーフローします。たとえば、CAST(-1, 'UInt8') は 255 を返します。
例
クエリ:
結果:
クエリ:
結果:
FixedString (N) への変換は、String 型または FixedString 型の引数に対してのみ可能です。
Nullable 型への変換およびその逆方向への変換がサポートされています。
例
クエリ:
結果:
クエリ:
結果:
関連項目
accurateCast(x, T)
x をデータ型 T に変換します。
cast との違いは、accurateCast では、値 x が型 T の範囲に収まらない場合、キャスト時に数値型のオーバーフローを許可しない点です。例えば、accurateCast(-1, 'UInt8') は例外をスローします。
例
クエリ:
結果:
クエリ:
結果:
accurateCastOrNull(x, T)
入力値 x を指定されたデータ型 T に変換します。常に Nullable 型を返し、変換後の値が対象の型で表現できない場合は NULL を返します。
構文
引数
x— 入力値。T— 戻り値のデータ型名。
戻り値
- データ型
Tに変換された値。
例
クエリ:
結果:
クエリ:
結果:
accurateCastOrDefault(x, T[, default_value])
入力値 x を指定されたデータ型 T に変換します。キャスト結果が対象型で表現できない場合は、その型のデフォルト値、もしくは指定されていれば default_value を返します。
構文
引数
x— 入力値。T— 戻り値のデータ型名。default_value— 戻り値のデータ型のデフォルト値。
返される値
- 指定されたデータ型
Tに変換された値。
例
クエリ:
結果:
クエリ:
結果:
toInterval
数値とインターバル単位(例:'second' や 'day')から Interval データ型の値を作成します。
構文
引数
-
value— インターバルの長さ。整数値、その文字列表現、または浮動小数点数。(U)Int*/Float*/String。 -
unit— 作成するインターバルの種類。String Literal。 指定可能な値:nanosecondmicrosecondmillisecondsecondminutehourdayweekmonthquarteryear
unit引数は大文字・小文字を区別しません。
戻り値
- 結果として得られるインターバル。Interval
例
toIntervalYear
n 年を表すインターバル値を、データ型 IntervalYear として返します。
構文
引数
戻り値
n年の期間。IntervalYear。
例
クエリ:
結果:
toIntervalQuarter
n 四半期を表す IntervalQuarter 型の間隔を返します。
構文
引数
返り値
n四半期分のインターバル。IntervalQuarter。
例
クエリ:
結果:
toIntervalMonth
データ型 IntervalMonth の n か月の間隔を返します。
構文
引数
戻り値
nか月のインターバル。IntervalMonth。
例
クエリ:
結果:
toIntervalWeek
データ型 IntervalWeek の n 週間を表す間隔を返します。
構文
引数
戻り値
n週を表すインターバル。IntervalWeek。
例
クエリ:
結果:
toIntervalDay
n 日の時間間隔を表す IntervalDay 型の値を返します。
構文
引数
返される値
n日のインターバル。IntervalDay。
例
クエリ:
結果:
toIntervalHour
長さ n 時間の間隔値を、データ型 IntervalHour として返します。
構文
引数
戻り値
n時間の間隔。IntervalHour。
例
クエリ:
結果:
toIntervalMinute
データ型 IntervalMinute の n 分を表す間隔を返します。
構文
引数
戻り値
n分の時間間隔。IntervalMinute。
例
クエリ:
Result: 結果:
toIntervalSecond
n 秒のインターバルを表す IntervalSecond 型の値を返します。
構文
引数
戻り値
n秒のインターバル。IntervalSecond。
例
クエリ:
結果:
toIntervalMillisecond
n ミリ秒の間隔をデータ型 IntervalMillisecond で返します。
構文
引数
返される値
nミリ秒の時間間隔。IntervalMilliseconds。
例
クエリ:
結果:
toIntervalMicrosecond
n マイクロ秒の値を IntervalMicrosecond 型のインターバルとして返します。
構文
引数
戻り値
nマイクロ秒の時間間隔。IntervalMicrosecond。
例
クエリ:
結果:
toIntervalNanosecond
n ナノ秒のインターバルをデータ型 IntervalNanosecond で返します。
構文
引数
戻り値
nナノ秒を表す Interval。IntervalNanosecond。
例
クエリ:
結果:
parseDateTime
String を MySQL のフォーマット文字列 に従って DateTime に変換します。
この関数は、formatDateTime 関数の逆の処理を行います。
構文
引数
str— パースする文字列format— フォーマット文字列。省略可能。指定されていない場合は%Y-%m-%d %H:%i:%s。timezone— Timezone。省略可能。
戻り値
MySQL スタイルのフォーマット文字列に従い、入力文字列からパースされた DateTime 値を返します。
サポートされているフォーマット指定子
formatDateTime に列挙されているすべてのフォーマット指定子(ただし次を除く):
- %Q: 四半期 (1-4)
例
別名:TO_TIMESTAMP
parseDateTimeOrZero
parseDateTime と同様ですが、処理できない日付形式に遭遇した場合は 0 の日時値を返します。
parseDateTimeOrNull
parseDateTime と同様ですが、処理できない日付形式に遭遇した場合は NULL を返します。
エイリアス: str_to_date。
parseDateTimeInJodaSyntax
parseDateTime と同様ですが、フォーマット文字列に MySQL 構文ではなく Joda 構文を使用します。
この関数は、関数 formatDateTimeInJodaSyntax の逆の処理を行います。
構文
引数
str— 解析する文字列format— フォーマット文字列。省略可能。指定しない場合はyyyy-MM-dd HH:mm:ss。timezone— Timezone。省略可能。
返される値
入力文字列を Joda スタイルのフォーマット文字列に従って解析した DateTime 値を返します。
サポートされているフォーマット指定子
formatDateTimeInJodaSyntax に記載されているすべてのフォーマット指定子がサポートされていますが、次のものを除きます:
- S: 秒の小数部
- z: タイムゾーン
- Z: タイムゾーンのオフセット/ID
例
parseDateTimeInJodaSyntaxOrZero
parseDateTimeInJodaSyntax と同様ですが、処理できない日付形式に当たった場合は、ゼロ値の日付を返します。
parseDateTimeInJodaSyntaxOrNull
parseDateTimeInJodaSyntax と同様ですが、処理できない日付形式を検出した場合は NULL を返します。
parseDateTime64
MySQL のフォーマット文字列に従って、String を DateTime64 に変換します。
構文
引数
str— 解析する文字列。format— フォーマット文字列。省略可能。指定されていない場合は%Y-%m-%d %H:%i:%s.%fが使用されます。timezone— Timezone。省略可能。
戻り値
MySQL スタイルのフォーマット文字列に従って、入力文字列から解析された DateTime64 値を返します。 返される値の精度は 6 桁です。
parseDateTime64OrZero
parseDateTime64 と同様ですが、処理できない日付形式に遭遇した場合は、ゼロの日時を返します。
parseDateTime64OrNull
parseDateTime64 と同様ですが、処理できない日付形式に遭遇した場合は NULL を返します。
parseDateTime64InJodaSyntax
String を Joda のフォーマット文字列 に従って DateTime64 に変換します。
構文
引数
str— 解析対象の文字列。format— フォーマット文字列。省略可能。省略された場合はyyyy-MM-dd HH:mm:ssが使用されます。timezone— Timezone。省略可能。
返り値
入力文字列を Joda スタイルのフォーマット文字列に従って解析した DateTime64 値を返します。
返される値の精度は、フォーマット文字列内の S プレースホルダーの数に等しくなります(ただし最大 6 まで)。
parseDateTime64InJodaSyntaxOrZero
parseDateTime64InJodaSyntax と同様ですが、処理できない日付フォーマットに遭遇した場合は、ゼロの日時を返します。
parseDateTime64InJodaSyntaxOrNull
parseDateTime64InJodaSyntax と同様ですが、処理できない日付形式が指定された場合は NULL を返します。
parseDateTimeBestEffort
parseDateTime32BestEffort
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など。例:2020-12-12 17:36:00 -5:00。 - syslog タイムスタンプ:
Mmm dd hh:mm:ss。例:Jun 9 14:20:32。
区切り文字を含むすべてのフォーマットについて、月名はフルスペルまたは月名の先頭 3 文字のいずれでも解析されます。例: 24/DEC/18, 24-Dec-18, 01-September-2018。
年が指定されていない場合は、現在の年と見なされます。結果の DateTime が現在時刻より 1 秒でも未来になる場合、現在の年は前年に置き換えられます。
戻り値
- DateTime データ型に変換された
time_string。
例
クエリ:
結果:
クエリ:
結果:
クエリ:
結果:
クエリ:
結果:
クエリ:
結果:
クエリ:
結果:
関連項目
parseDateTimeBestEffortUS
この関数は、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 として解析されます。
parseDateTimeBestEffortOrNull
parseDateTime32BestEffortOrNull
parseDateTimeBestEffort と同様ですが、処理できない日付形式に出会った場合は NULL を返します。
parseDateTimeBestEffortOrZero
parseDateTime32BestEffortOrZero
parseDateTimeBestEffort と同様ですが、処理できない形式の日付に遭遇した場合は、ゼロ日付またはゼロ日時を返します。
parseDateTimeBestEffortUSOrNull
parseDateTimeBestEffortUS 関数と同様ですが、処理できない日付形式を検出した場合は NULL を返します。
parseDateTimeBestEffortUSOrZero
parseDateTimeBestEffortUS 関数と同様ですが、処理できない形式の日付を検出した場合に、ゼロ日付(1970-01-01)または時刻付きゼロ日付(1970-01-01 00:00:00)を返します。
parseDateTime64BestEffort
parseDateTimeBestEffort 関数と同様ですが、ミリ秒およびマイクロ秒も解析し、DateTime 型の値を返します。
構文
引数
time_string— 変換する日付、または日付と時刻を含む文字列。String。precision— 要求される精度。3— ミリ秒、6— マイクロ秒。既定値 —3。省略可。UInt8。time_zone— Timezone。関数はtime_stringをこのタイムゾーンとして解釈します。省略可。String。
戻り値
- DateTime データ型に変換された
time_string。
例
クエリ:
結果:
parseDateTime64BestEffortUS
parseDateTime64BestEffort と同様ですが、あいまいさがある場合には、米国形式の日付(MM/DD/YYYY など)を優先して解釈します。
parseDateTime64BestEffortOrNull
parseDateTime64BestEffort と同様ですが、処理できない日付形式に遭遇した場合は NULL を返します。
parseDateTime64BestEffortOrZero
parseDateTime64BestEffort と同様ですが、処理できない日付形式に遭遇した場合は、ゼロの日付またはゼロの日時を返します。
parseDateTime64BestEffortUSOrNull
parseDateTime64BestEffort と同じですが、あいまいな場合には米国の日時形式(MM/DD/YYYY など)を優先的に解釈し、処理できない形式だった場合は NULL を返します。
parseDateTime64BestEffortUSOrZero
parseDateTime64BestEffort と同様ですが、この関数はあいまいな場合に US の日付形式(MM/DD/YYYY など)を優先し、解釈できない日付形式に遭遇したときはゼロ日付またはゼロ日時を返します。
toLowCardinality
入力引数を、同じデータ型の LowCardinality バージョンに変換します。
LowCardinality データ型から通常のデータ型に変換するには、CAST 関数を使用します。たとえば CAST(x as String) のように指定します。
構文
引数
expr— 結果がサポートされているデータ型のいずれかとなる式。
戻り値
exprの結果。exprの型に対する LowCardinality 型。
例
クエリ:
結果:
toUnixTimestamp
String、Date、または DateTime を、Unix タイムスタンプ(1970-01-01 00:00:00 UTC からの経過秒数)を表す UInt32 値に変換します。
構文
引数
date: 変換する値。DateまたはDate32またはDateTimeまたはDateTime64またはString。timezone: 省略可能。変換に使用するタイムゾーン。指定されていない場合は、サーバーのタイムゾーンが使用されます。String
戻り値
Unixタイムスタンプを返します。UInt32
例
使用例
toUnixTimestamp64Second
DateTime64 を秒単位の固定精度を持つ Int64 値に変換します。入力値は、その精度に応じて適切にスケーリングされます。
出力値は UTC のタイムスタンプであり、DateTime64 のタイムゾーンではありません。
構文
引数
value— 任意の精度を持つ DateTime64 型の値。DateTime64。
戻り値
valueをInt64データ型に変換した値。Int64。
例
クエリ:
結果:
toUnixTimestamp64Milli
DateTime64 を固定のミリ秒精度を持つ Int64 値に変換します。入力値は、その精度に応じて適切にスケールアップまたはスケールダウンされます。
出力値は DateTime64 のタイムゾーンではなく、UTC のタイムスタンプです。
構文
引数
value— 任意の精度を持つDateTime64値。DateTime64。
返り値
valueをInt64データ型に変換した値。Int64。
例
クエリ:
結果:
toUnixTimestamp64Micro
DateTime64 を、マイクロ秒単位で固定精度の Int64 値に変換します。入力値は、その精度に応じて適切にスケール変換(拡大または縮小)されます。
出力値は DateTime64 のタイムゾーンではなく、UTC のタイムスタンプです。
構文
引数
value— 任意精度の DateTime64 値。DateTime64。
戻り値
Int64データ型に変換されたvalue。Int64。
例
クエリ:
結果:
toUnixTimestamp64Nano
DateTime64 をナノ秒精度に固定した Int64 値に変換します。入力値は、その精度に応じて適切にスケール変換(拡大または縮小)されます。
出力値は DateTime64 のタイムゾーンではなく、UTC のタイムスタンプです。
構文
引数
value— 任意の精度を持つ DateTime64 値。DateTime64。
戻り値
valueをInt64データ型に変換した値。Int64。
例
クエリ:
結果:
fromUnixTimestamp64Second
Int64 を固定の秒精度と任意のタイムゾーンを持つ DateTime64 値に変換します。入力値は、その精度に応じて適切にスケールアップまたはスケールダウンされます。
入力値は、指定された(または暗黙の)タイムゾーンでのタイムスタンプではなく、UTC のタイムスタンプとして扱われる点に注意してください。
構文
引数
返される値
valueを精度0の DateTime64 に変換した結果。DateTime64。
例
クエリ:
結果:
fromUnixTimestamp64Milli
Int64 を、固定のミリ秒単位の精度と任意のタイムゾーンを持つ DateTime64 値に変換します。入力値は、その精度に応じて適切にスケーリング(拡大または縮小)されます。
入力値は、指定(または暗黙)のタイムゾーンでのタイムスタンプではなく、UTC のタイムスタンプとして扱われる点に注意してください。
構文
引数
戻り値
valueを精度3の DateTime64 に変換した値。DateTime64。
例
クエリ:
結果:
fromUnixTimestamp64Micro
Int64 を、マイクロ秒固定精度と任意のタイムゾーンを持つ DateTime64 値に変換します。入力値は、その精度に応じて適切にスケールアップまたはスケールダウンされます。
入力値は、指定された(または暗黙の)タイムゾーンでのタイムスタンプではなく、UTC タイムスタンプとして扱われる点に注意してください。
構文
引数
返される値
valueを精度6の DateTime64 に変換した値。DateTime64 型。
例
クエリ:
結果:
fromUnixTimestamp64Nano
Int64 をナノ秒精度の DateTime64 値に変換し、必要に応じてタイムゾーンを指定します。入力値は、その精度に応じて適切にスケールアップまたはスケールダウンされます。
入力値は、指定された(または暗黙の)タイムゾーンでのタイムスタンプではなく、UTC のタイムスタンプとして解釈される点に注意してください。
構文
引数
返り値
valueを精度9の DateTime64 型に変換した値。DateTime64。
例
クエリ:
結果:
formatRow
任意の式を、指定されたフォーマットに従って文字列に変換します。
構文
引数
format— テキスト形式。例: CSV、TabSeparated (TSV)。x,y, ... — 式。
返される値
- フォーマットされた文字列(テキスト形式の場合は、通常末尾に改行文字が付きます)。
例
クエリ:
結果:
注記: フォーマットに接頭辞や接尾辞が含まれている場合、それぞれの行に付加されます。
例
クエリ:
結果:
注意: この関数では行ベースのフォーマットのみがサポートされています。
formatRowNoNewline
任意の式を、与えられたフォーマットを使って文字列に変換します。formatRow との違いは、この関数は末尾にある \n があればそれを取り除く点です。
構文
引数
format— テキストフォーマット。たとえば、CSV、TabSeparated (TSV)。x,y, ... — 式。
戻り値
- フォーマット済み文字列。
例
クエリ:
結果: