Problemas habituales con la conversión de datos
ClickHouse generalmente utiliza el mismo comportamiento que los programas en C++.
Las funciones to<type> y cast se comportan de manera diferente en algunos casos, por ejemplo con LowCardinality: cast elimina la propiedad LowCardinality, mientras que las funciones to<type> no. Lo mismo ocurre con Nullable; este comportamiento no es compatible con el estándar SQL y puede modificarse mediante la configuración cast_keep_nullable.
Ejemplo:
SELECT
toTypeName(toLowCardinality('') AS val) AS source_type,
toTypeName(toString(val)) AS to_type_result_type,
toTypeName(CAST(val, 'String')) AS cast_result_type
┌Notas sobre las funciones toString
La familia de funciones toString permite convertir entre números, cadenas (pero no cadenas de longitud fija), fechas y valores de fecha y hora.
Todas estas funciones aceptan un argumento.
- Al convertir una cadena o a partir de una cadena, el valor se formatea o se analiza según las mismas reglas que en el formato TabSeparated (y en casi todos los demás formatos de texto). Si la cadena no se puede analizar, se lanza una excepción y se cancela la solicitud.
- Al convertir fechas en números o viceversa, la fecha corresponde al número de días transcurridos desde el inicio de la época Unix.
- Al convertir valores de fecha y hora en números o viceversa, el valor de fecha y hora corresponde al número de segundos transcurridos desde el inicio de la época Unix.
- La función
toStringdel argumentoDateTimepuede aceptar un segundo argumento String que contenga el nombre de la zona horaria, por ejemplo:Europe/Amsterdam. En este caso, la hora se formatea según la zona horaria especificada.
Notas sobre las funciones toDate/toDateTime
Los formatos de fecha y fecha con hora de las funciones toDate/toDateTime se definen de la siguiente manera:
YYYY-MM-DD
YYYY-MM-DD hh:mm:ssComo excepción, si se convierte de tipos numéricos UInt32, Int32, UInt64 o Int64 a Date, y si el número es mayor o igual que 65536, este se interpreta como una marca de tiempo Unix (y no como un número de días) y se redondea a una fecha.
Esto permite admitir el caso habitual de escribir toDate(unix_timestamp), que de otro modo sería un error y obligaría a escribir la forma más engorrosa toDate(toDateTime(unix_timestamp)).
La conversión entre una fecha y una fecha con hora se realiza de la forma natural: añadiendo una hora nula o eliminando la hora.
La conversión entre tipos numéricos utiliza las mismas reglas que las asignaciones entre distintos tipos numéricos en C++.
Ejemplo
SELECT
now() AS ts,
time_zone,
toString(ts, time_zone) AS str_tz_datetime
FROM system.time_zones
WHERE time_zone LIKE 'Europe%'
LIMIT 10┌──────────────────ts─┬─time_zone─────────┬─str_tz_datetime─────┐
│ 2023-09-08 19:14:59 │ Europe/Amsterdam │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Andorra │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Astrakhan │ 2023-09-08 23:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Athens │ 2023-09-08 22:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Belfast │ 2023-09-08 20:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Belgrade │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Berlin │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Bratislava │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Brussels │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Bucharest │ 2023-09-08 22:14:59 │
└─────────────────────┴───────────────────┴─────────────────────┘Consulte también la función toUnixTimestamp.
CAST
Introducido en: v1.1.0
Convierte un valor a un tipo de dato especificado. A diferencia de la función reinterpret, CAST intenta generar el mismo valor en el tipo de destino. Si no es posible, se genera una excepción.
Sintaxis
CAST(x, T)
or CAST(x AS T)
or x::TArgumentos
Valor devuelto
Devuelve el valor convertido al tipo de dato de destino. Any
Ejemplos
Uso básico
SELECT CAST(42, 'String')┌─CAST(42, 'String')─┐
│ 42 │
└────────────────────┘Uso de la sintaxis AS
SELECT CAST('2025-01-01' AS Date)┌─CAST('2025-01-01', 'Date')─┐
│ 2025-01-01 │
└────────────────────────────┘Uso de la sintaxis ::
SELECT '123'::UInt32┌─CAST('123', 'UInt32')─┐
│ 123 │
└───────────────────────┘DATE
Introducido en: v21.2.0
Convierte el argumento al tipo de dato Date. Es un alias de compatibilidad con MySQL para toDate. Se comporta igual que toDate.
Sintaxis
DATE(expr)Argumentos
Valor devuelto
Devuelve un valor de tipo Date. Date
Ejemplos
Uso básico
SELECT DATE('2023-01-01')2023-01-01accurateCast
Introducido en: v1.1.0
Convierte un valor al tipo de dato especificado. A diferencia de CAST, accurateCast realiza una comprobación de tipos más estricta y lanza una excepción si la conversión provoca una pérdida de precisión de los datos o si la conversión no es posible.
Esta función es más segura que CAST, ya que evita la pérdida de precisión y las conversiones no válidas.
Sintaxis
accurateCast(x, T)Argumentos
Valor devuelto
Devuelve el valor convertido al tipo de dato de destino. Any
Ejemplos
Conversión correcta
SELECT accurateCast(42, 'UInt16')┌─accurateCast(42, 'UInt16')─┐
│ 42 │
└────────────────────────────┘De String a número
SELECT accurateCast('123.45', 'Float64')┌─accurateCast('123.45', 'Float64')─┐
│ 123.45 │
└───────────────────────────────────┘accurateCastOrDefault
Introducido en: v21.1.0
Convierte un valor a un tipo de dato especificado.
Como accurateCast, pero devuelve un valor predeterminado en lugar de lanzar una excepción si la conversión no puede realizarse con precisión.
Si se proporciona un valor predeterminado como segundo argumento, debe ser del tipo de destino. Si no se proporciona ningún valor predeterminado, se utiliza el valor predeterminado del tipo de destino.
Sintaxis
accurateCastOrDefault(x, T[, default_value])Argumentos
x— Un valor que se convertirá.AnyT— El nombre del tipo de dato de destino.const Stringdefault_value— Opcional. Valor por defecto que se devuelve si la conversión falla.Any
Valor devuelto
Devuelve el valor convertido al tipo de dato de destino, o el valor por defecto si la conversión no es posible. Any
Ejemplos
Conversión correcta
SELECT accurateCastOrDefault(42, 'String')┌─accurateCastOrDefault(42, 'String')─┐
│ 42 │
└─────────────────────────────────────┘Conversión fallida con valor predeterminado explícito
SELECT accurateCastOrDefault('abc', 'UInt32', 999::UInt32)┌─accurateCastOrDefault('abc', 'UInt32', CAST('999', 'UInt32'))─┐
│ 999 │
└───────────────────────────────────────────────────────────────┘Conversión fallida con valor predeterminado implícito
SELECT accurateCastOrDefault('abc', 'UInt32')┌─accurateCastOrDefault('abc', 'UInt32')─┐
│ 0 │
└────────────────────────────────────────┘accurateCastOrNull
Introducido en: v1.1.0
Convierte un valor a un tipo de dato especificado.
Como accurateCast, pero devuelve NULL en lugar de generar una excepción si la conversión no puede realizarse con precisión.
Esta función combina la seguridad de accurateCast con un manejo adecuado de errores.
Sintaxis
accurateCastOrNull(x, T)Argumentos
Valor devuelto
Devuelve el valor convertido al tipo de dato de destino, o NULL si la conversión no es posible. Any
Ejemplos
Conversión correcta
SELECT accurateCastOrNull(42, 'String')┌─accurateCastOrNull(42, 'String')─┐
│ 42 │
└──────────────────────────────────┘Si la conversión falla, devuelve NULL
SELECT accurateCastOrNull('abc', 'UInt32')┌─accurateCastOrNull('abc', 'UInt32')─┐
│ ᴺᵁᴸᴸ │
└─────────────────────────────────────┘formatRow
Introducido en: v20.7.0
Convierte expresiones arbitrarias en una cadena usando el formato indicado.
Sintaxis
formatRow(format, x, y, ...)Argumentos
Valor devuelto
Una cadena formateada. (en los formatos de texto, suele terminar con un carácter de nueva línea). String
Ejemplos
Uso básico
SELECT formatRow('CSV', number, 'good')
FROM numbers(3)┌─formatRow('CSV', number, 'good')─┐
│ 0,"good" ↴│
│ 1,"good" ↴│
│ 2,"good" ↴│
└──────────────────────────────────┘Con formato personalizado
SELECT formatRow('CustomSeparated', number, 'good')
FROM numbers(3)
SETTINGS format_custom_result_before_delimiter='<prefix>\n', format_custom_result_after_delimiter='<suffix>'┌─formatRow('CustomSeparated', number, 'good')─┐
│ <prefix> ↴│
│↳0 good ↴│
│↳<suffix> │
│ <prefix> ↴│
│↳1 good ↴│
│↳<suffix> │
│ <prefix> ↴│
│↳2 good ↴│
│↳<suffix> │
└──────────────────────────────────────────────┘formatRowNoNewline
Introducido en: v20.7.0
Igual que formatRow, pero elimina el carácter de nueva línea de cada fila.
Convierte expresiones arbitrarias en una cadena con el formato especificado, pero elimina cualquier carácter de nueva línea al final del resultado.
Sintaxis
formatRowNoNewline(format, x, y, ...)Argumentos
Valor devuelto
Devuelve una cadena formateada sin saltos de línea. String
Ejemplos
Uso básico
SELECT formatRowNoNewline('CSV', number, 'good')
FROM numbers(3)┌─formatRowNoNewline('CSV', number, 'good')─┐
│ 0,"good" │
│ 1,"good" │
│ 2,"good" │
└───────────────────────────────────────────┘fromUnixTimestamp64Micro
Introducido en: v20.5.0
Convierte una marca de tiempo Unix en microsegundos en un valor DateTime64 con precisión de microsegundos.
El valor de entrada se interpreta como una marca de tiempo Unix con precisión de microsegundos (número de microsegundos desde 1970-01-01 00:00:00 UTC).
Sintaxis
fromUnixTimestamp64Micro(value[, timezone])Argumentos
value— Marca de tiempo Unix en microsegundos.Int64timezone— Opcional. Zona horaria del valor devuelto.String
Valor devuelto
Devuelve un valor DateTime64 con precisión de microsegundos. DateTime64(6)
Ejemplos
Ejemplo de uso
SELECT fromUnixTimestamp64Micro(1640995200123456)┌─fromUnixTimestamp64Micro(1640995200123456)─┐
│ 2022-01-01 00:00:00.123456 │
└────────────────────────────────────────────┘fromUnixTimestamp64Milli
Introducido en: v20.5.0
Convierte una marca de tiempo Unix en milisegundos en un valor DateTime64 con precisión de milisegundos.
El valor de entrada se trata como una marca de tiempo Unix con precisión de milisegundos (número de milisegundos transcurridos desde 1970-01-01 00:00:00 UTC).
Sintaxis
fromUnixTimestamp64Milli(value[, timezone])Argumentos
value— Marca de tiempo Unix en milisegundos.Int64timezone— Opcional. Zona horaria del valor devuelto.String
Valor devuelto
Un valor DateTime64 con precisión de milisegundos. DateTime64(3)
Ejemplos
Ejemplo de uso
SELECT fromUnixTimestamp64Milli(1640995200123)┌─fromUnixTimestamp64Milli(1640995200123)─┐
│ 2022-01-01 00:00:00.123 │
└─────────────────────────────────────────┘fromUnixTimestamp64Nano
Introducido en: v20.5.0
Convierte una marca de tiempo Unix en nanosegundos en un valor DateTime64 con precisión de nanosegundos.
El valor de entrada se interpreta como una marca de tiempo Unix con precisión de nanosegundos (número de nanosegundos transcurridos desde 1970-01-01 00:00:00 UTC).
Sintaxis
fromUnixTimestamp64Nano(value[, timezone])Argumentos
value— marca de tiempo Unix en nanosegundos.Int64timezone— Opcional. Zona horaria del valor devuelto.String
Valor devuelto
Devuelve un valor DateTime64 con precisión de nanosegundos. DateTime64(9)
Ejemplos
Ejemplo de uso
SELECT fromUnixTimestamp64Nano(1640995200123456789)┌─fromUnixTimestamp64Nano(1640995200123456789)─┐
│ 2022-01-01 00:00:00.123456789 │
└──────────────────────────────────────────────┘fromUnixTimestamp64Second
Introducido en: v24.12.0
Convierte una marca de tiempo Unix en segundos en un valor DateTime64 con precisión de segundos.
El valor de entrada se trata como una marca de tiempo Unix con precisión de segundos (número de segundos desde 1970-01-01 00:00:00 UTC).
Sintaxis
fromUnixTimestamp64Second(value[, timezone])Argumentos
value— marca de tiempo Unix en segundos.Int64timezone— Opcional. Zona horaria del valor devuelto.String
Valor devuelto
Devuelve un valor DateTime64 con precisión de segundos. DateTime64(0)
Ejemplos
Ejemplo de uso
SELECT fromUnixTimestamp64Second(1640995200)┌─fromUnixTimestamp64Second(1640995200)─┐
│ 2022-01-01 00:00:00 │
└───────────────────────────────────────┘parseDateTime
Introducido en: v23.3.0
Convierte una cadena de fecha y hora según una cadena de formato de fecha de MySQL.
Esta función es la inversa de formatDateTime.
Convierte un argumento String usando una String de formato. Devuelve un valor de tipo DateTime.
Sintaxis
parseDateTime(time_string, format[, timezone])Aliases: TO_UNIXTIME
Argumentos
time_string— Cadena que se analizará para convertirla en DateTime.Stringformat— Cadena de formato que especifica cómo analizar time_string.Stringtimezone— Opcional. Zona horaria.String
Valor devuelto
Devuelve un DateTime obtenido al analizar la cadena de entrada según la cadena de formato de estilo MySQL. DateTime
Ejemplos
Ejemplo de uso
SELECT parseDateTime('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')┌─parseDateTime('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')─┐
│ 2025-01-04 23:00:00 │
└───────────────────────────────────────────────────────────┘parseDateTime32BestEffort
Introducido en: v20.9.0
Convierte una representación textual de una fecha y hora al tipo de dato DateTime.
La función interpreta ISO 8601, RFC 1123 - 5.2.14 RFC-822 Date and Time Specification, los formatos de fecha y hora de ClickHouse y algunos otros.
Sintaxis
parseDateTime32BestEffort(time_string[, time_zone])Argumentos
time_string—Stringque contiene una fecha y hora para convertir.Stringtime_zone— Opcional. Zona horaria usada para analizartime_stringString
Valor devuelto
Devuelve time_string como un DateTime. DateTime
Ejemplos
Ejemplo de uso
SELECT parseDateTime32BestEffort('23/10/2025 12:12:57')
AS parseDateTime32BestEffort┌─parseDateTime32BestEffort─┐
│ 2025-10-23 12:12:57 │
└───────────────────────────┘Con zona horaria
SELECT parseDateTime32BestEffort('Sat, 18 Aug 2025 07:22:16 GMT', 'Asia/Istanbul')
AS parseDateTime32BestEffort┌─parseDateTime32BestEffort─┐
│ 2025-08-18 10:22:16 │
└───────────────────────────┘marca de tiempo Unix
SELECT parseDateTime32BestEffort('1284101485')
AS parseDateTime32BestEffort┌─parseDateTime32BestEffort─┐
│ 2010-09-10 06:51:25 │
└───────────────────────────┘parseDateTime32BestEffortOrNull
Introducido en: v20.9.0
Igual que parseDateTime32BestEffort, salvo que devuelve NULL cuando encuentra un formato de fecha que no se puede procesar.
Sintaxis
parseDateTime32BestEffortOrNull(time_string[, time_zone])Argumentos
time_string— String que contiene una fecha y hora que se va a convertir.Stringtime_zone— Opcional. Zona horaria según la cual se analizatime_string.String
Valor devuelto
Devuelve un objeto DateTime obtenido al analizar la cadena, o NULL si el análisis falla. DateTime
Ejemplos
Ejemplo de uso
SELECT
parseDateTime32BestEffortOrNull('23/10/2025 12:12:57') AS valid,
parseDateTime32BestEffortOrNull('invalid date') AS invalid┌───────────────valid─┬─invalid─┐
│ 2025-10-23 12:12:57 │ ᴺᵁᴸᴸ │
└─────────────────────┴─────────┘parseDateTime32BestEffortOrZero
Introducido en: v20.9.0
Igual que parseDateTime32BestEffort, salvo que devuelve una fecha cero o una fecha y hora cero cuando encuentra un formato de fecha que no se puede procesar.
Sintaxis
parseDateTime32BestEffortOrZero(time_string[, time_zone])Argumentos
time_string—Stringque contiene una fecha y hora para convertir.Stringtime_zone— Opcional. Zona horaria según la cual se analizatime_string.String
Valor devuelto
Devuelve un objeto DateTime obtenido a partir de la cadena o la fecha cero (1970-01-01 00:00:00) si el análisis falla. DateTime
Ejemplos
Ejemplo de uso
SELECT
parseDateTime32BestEffortOrZero('23/10/2025 12:12:57') AS valid,
parseDateTime32BestEffortOrZero('invalid date') AS invalid┌───────────────valid─┬─────────────invalid─┐
│ 2025-10-23 12:12:57 │ 1970-01-01 00:00:00 │
└─────────────────────┴─────────────────────┘parseDateTime64
Introducido en: v24.11.0
Analiza una cadena de fecha y hora con precisión de subsegundos según una cadena de formato de fecha de MySQL.
Esta función es la inversa de formatDateTime para DateTime64.
Analiza un argumento de tipo String usando un formato String. Devuelve un valor de tipo DateTime64 que puede representar fechas de 0000 a 9999 con precisión de subsegundos (las precisiones altas cubren un rango más estrecho porque el valor se almacena en un número Int64 de ticks: la precisión 8 llega aproximadamente hasta 4892 y la precisión 9 abarca de 1677 a 2262).
Sintaxis
parseDateTime64(time_string, format[, timezone])Argumentos
time_string— Cadena que se interpretará como DateTime64.Stringformat— Cadena de formato que especifica cómo interpretar time_string.Stringtimezone— Opcional. Zona horaria.String
Valor devuelto
Devuelve un DateTime64 obtenido al interpretar la cadena de entrada según la cadena de formato de estilo MySQL. DateTime64
Ejemplos
Ejemplo de uso
SELECT parseDateTime64('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')┌─parseDateTime64('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')─┐
│ 2025-01-04 23:00:00.123000 │
└────────────────────────────────────────────────────────────────────┘parseDateTime64BestEffort
Introducido en: v20.1.0
Igual que la función parseDateTimeBestEffort, pero también analiza milisegundos y microsegundos, y devuelve el tipo de dato DateTime64.
Sintaxis
parseDateTime64BestEffort(time_string[, precision[, time_zone]])Argumentos
time_string— Cadena que contiene una fecha o una fecha con hora para convertir.Stringprecision— Opcional. Precisión requerida.3para milisegundos,6para microsegundos. Valor predeterminado:3.UInt8time_zone— Opcional. Zona horaria. La función interpretatime_stringsegún la zona horaria.String
Valor devuelto
Devuelve time_string convertido al tipo de dato DateTime64. DateTime64
Ejemplos
Ejemplo de uso
SELECT parseDateTime64BestEffort('2025-01-01') AS a, toTypeName(a) AS t
UNION ALL
SELECT parseDateTime64BestEffort('2025-01-01 01:01:00.12346') AS a, toTypeName(a) AS t
UNION ALL
SELECT parseDateTime64BestEffort('2025-01-01 01:01:00.12346',6) AS a, toTypeName(a) AS t
UNION ALL
SELECT parseDateTime64BestEffort('2025-01-01 01:01:00.12346',3,'Asia/Istanbul') AS a, toTypeName(a) AS t
FORMAT PrettyCompactMonoBlock┌──────────────────────────a─┬─t──────────────────────────────┐
│ 2025-01-01 01:01:00.123000 │ DateTime64(3) │
│ 2025-01-01 00:00:00.000000 │ DateTime64(3) │
│ 2025-01-01 01:01:00.123460 │ DateTime64(6) │
│ 2025-12-31 22:01:00.123000 │ DateTime64(3, 'Asia/Istanbul') │
└────────────────────────────┴────────────────────────────────┘parseDateTime64BestEffortOrNull
Introducido en: v20.1.0
Igual que parseDateTime64BestEffort, excepto que devuelve NULL cuando encuentra un formato de fecha que no puede procesarse.
Sintaxis
parseDateTime64BestEffortOrNull(time_string[, precision[, time_zone]])Argumentos
time_string— Cadena que contiene una fecha o una fecha con hora para convertir.Stringprecision— Opcional. Precisión requerida.3para milisegundos,6para microsegundos. Valor predeterminado:3.UInt8time_zone— Opcional. Zona horaria. La función interpretatime_stringsegún la zona horaria.String
Valor devuelto
Devuelve time_string convertido a DateTime64, o NULL si no se puede analizar la entrada. DateTime64 o NULL
Ejemplos
Ejemplo de uso
SELECT parseDateTime64BestEffortOrNull('2025-01-01 01:01:00.123') AS valid,
parseDateTime64BestEffortOrNull('invalid') AS invalid┌───────────────────valid─┬─invalid─┐
│ 2025-01-01 01:01:00.123 │ ᴺᵁᴸᴸ │
└─────────────────────────┴─────────┘parseDateTime64BestEffortOrZero
Introducido en: v20.1.0
Igual que parseDateTime64BestEffort, excepto que devuelve una fecha cero o una fecha y hora cero cuando encuentra un formato de fecha que no puede procesarse.
Sintaxis
parseDateTime64BestEffortOrZero(time_string[, precision[, time_zone]])Argumentos
time_string—Stringque contiene una fecha o una fecha con hora para convertir.Stringprecision— Opcional. Precisión requerida.3para milisegundos,6para microsegundos. Valor predeterminado:3.UInt8time_zone— Opcional. Zona horaria. La función interpretatime_stringsegún la zona horaria.String
Valor devuelto
Devuelve time_string convertido a DateTime64, o una fecha cero/datetime (1970-01-01 00:00:00.000) si no se puede analizar la entrada. DateTime64
Ejemplos
Ejemplo de uso
SELECT parseDateTime64BestEffortOrZero('2025-01-01 01:01:00.123') AS valid,
parseDateTime64BestEffortOrZero('invalid') AS invalid┌───────────────────valid─┬─────────────────invalid─┐
│ 2025-01-01 01:01:00.123 │ 1970-01-01 00:00:00.000 │
└─────────────────────────┴─────────────────────────┘parseDateTime64BestEffortUS
Introducido en: v22.8.0
Igual que parseDateTime64BestEffort, salvo que esta función prioriza el formato de fecha de EE. UU. (MM/DD/YYYY, etc.) en caso de ambigüedad.
Sintaxis
parseDateTime64BestEffortUS(time_string [, precision [, time_zone]])Argumentos
time_string— Cadena que contiene una fecha o una fecha con hora para convertir.Stringprecision— Opcional. Precisión requerida.3para milisegundos,6para microsegundos. Valor predeterminado:3.UInt8time_zone— Opcional. Zona horaria. La función analizatime_stringsegún la zona horaria.String
Valor devuelto
Devuelve time_string convertido a DateTime64, con preferencia por el formato de fecha de EE. UU. en casos ambiguos. DateTime64
Ejemplos
Ejemplo de uso
SELECT parseDateTime64BestEffortUS('02/10/2025 12:30:45.123') AS us_format,
parseDateTime64BestEffortUS('15/08/2025 10:15:30.456') AS fallback_to_standard┌───────────────us_format─┬────fallback_to_standard─┐
│ 2025-02-10 12:30:45.123 │ 2025-08-15 10:15:30.456 │
└─────────────────────────┴─────────────────────────┘parseDateTime64BestEffortUSOrNull
Introducido en: v22.8.0
Igual que parseDateTime64BestEffort, salvo que esta función prioriza el formato de fecha de EE. UU. (MM/DD/YYYY, etc.) en caso de ambigüedad y devuelve NULL cuando encuentra un formato de fecha que no puede procesarse.
Sintaxis
parseDateTime64BestEffortUSOrNull(time_string[, precision[, time_zone]])Argumentos
time_string— Cadena que contiene una fecha o una fecha con hora para convertir.Stringprecision— Opcional. Precisión requerida.3para milisegundos,6para microsegundos. Valor predeterminado:3.UInt8time_zone— Opcional. Zona horaria. La función analizatime_stringsegún la zona horaria.String
Valor devuelto
Devuelve time_string convertido a DateTime64 con preferencia por el formato de EE. UU., o NULL si la entrada no se puede interpretar. DateTime64 o NULL
Ejemplos
Ejemplo de uso
SELECT parseDateTime64BestEffortUSOrNull('02/10/2025 12:30:45.123') AS valid_us,
parseDateTime64BestEffortUSOrNull('invalid') AS invalid┌────────────────valid_us─┬─invalid─┐
│ 2025-02-10 12:30:45.123 │ ᴺᵁᴸᴸ │
└─────────────────────────┴─────────┘parseDateTime64BestEffortUSOrZero
Introducido en: v22.8.0
Igual que parseDateTime64BestEffort, salvo que esta función da preferencia al formato de fecha de EE. UU. (MM/DD/YYYY, etc.) en caso de ambigüedad y devuelve una fecha cero o una fecha y hora cero cuando encuentra un formato de fecha que no puede procesarse.
Sintaxis
parseDateTime64BestEffortUSOrZero(time_string [, precision [, time_zone]])Argumentos
time_string—Stringque contiene una fecha o una fecha con hora para convertir.Stringprecision— Opcional. Precisión requerida.3para milisegundos,6para microsegundos. Valor predeterminado:3.UInt8time_zone— Opcional. Zona horaria. La función analizatime_stringsegún la zona horaria.String
Valor devuelto
Devuelve time_string convertido a DateTime64 con preferencia por el formato de EE. UU., o una fecha/fecha y hora cero (1970-01-01 00:00:00.000) si no se puede analizar la entrada. DateTime64
Ejemplos
Ejemplo de uso
SELECT parseDateTime64BestEffortUSOrZero('02/10/2025 12:30:45.123') AS valid_us,
parseDateTime64BestEffortUSOrZero('invalid') AS invalid┌────────────────valid_us─┬─────────────────invalid─┐
│ 2025-02-10 12:30:45.123 │ 1970-01-01 00:00:00.000 │
└─────────────────────────┴─────────────────────────┘parseDateTime64InJodaSyntax
Introducido en: v24.10.0
Analiza una cadena de fecha y hora con precisión inferior al segundo según una cadena de formato de fecha de Joda.
Esta función es la inversa de formatDateTimeInJodaSyntax para DateTime64.
Analiza un argumento String con una cadena de formato String de estilo Joda. Devuelve un tipo DateTime64 que puede representar fechas de 0000 a 9999 con precisión inferior al segundo (las precisiones altas cubren un intervalo más estrecho porque el valor se almacena en un número Int64 de ticks: la precisión 8 alcanza aproximadamente 4892 y la precisión 9 abarca de 1677 a 2262).
Consulta la documentación de Joda Time para conocer los patrones de formato.
Sintaxis
parseDateTime64InJodaSyntax(time_string, format[, timezone])Argumentos
time_string— Cadena que se analizará como DateTime64.Stringformat— Cadena de formato en sintaxis Joda que especifica cómo analizar time_string.Stringtimezone— Opcional. Zona horaria.String
Valor devuelto
Devuelve un DateTime64 obtenido a partir de la cadena de entrada según la cadena de formato de estilo Joda. DateTime64
Ejemplos
Ejemplo de uso
SELECT parseDateTime64InJodaSyntax('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')┌─parseDateTime64InJodaSyntax('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')─┐
│ 2025-01-04 23:00:00.123 │
└───────────────────────────────────────────────────────────────────────────────────┘parseDateTime64InJodaSyntaxOrNull
Introducido en: v24.10.0
Igual que parseDateTime64InJodaSyntax, pero devuelve NULL cuando encuentra un formato de fecha que no se puede analizar.
Sintaxis
parseDateTime64InJodaSyntaxOrNull(time_string, format[, timezone])Argumentos
time_string— Cadena que se analizará como DateTime64.Stringformat— Cadena de formato en sintaxis Joda que especifica cómo analizar time_string.Stringtimezone— Opcional. Zona horaria.String
Valor devuelto
Devuelve el valor DateTime64 analizado a partir de la cadena de entrada, o NULL si el análisis falla. Nullable(DateTime64)
Ejemplos
Ejemplo de uso
SELECT parseDateTime64InJodaSyntaxOrNull('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')┌─parseDateTime64InJodaSyntaxOrNull('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')─┐
│ 2025-01-04 23:00:00.123 │
└─────────────────────────────────────────────────────────────────────────────────────────┘parseDateTime64InJodaSyntaxOrZero
Introducido en: v24.10.0
Igual que parseDateTime64InJodaSyntax, pero devuelve una fecha cero cuando encuentra un formato de fecha que no se puede analizar.
Sintaxis
parseDateTime64InJodaSyntaxOrZero(time_string, format[, timezone])Argumentos
time_string— String que se analizará como DateTime64.Stringformat— Cadena de formato en sintaxis Joda que especifica cómo analizar time_string.Stringtimezone— Opcional. Zona horaria.String
Valor devuelto
Devuelve el DateTime64 interpretado a partir de la cadena de entrada, o el valor cero de DateTime64 si el análisis falla. DateTime64
Ejemplos
Ejemplo de uso
SELECT parseDateTime64InJodaSyntaxOrZero('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')┌─parseDateTime64InJodaSyntaxOrZero('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')─┐
│ 2025-01-04 23:00:00.123 │
└─────────────────────────────────────────────────────────────────────────────────────────┘parseDateTime64OrNull
Introducido en: v24.11.0
Igual que parseDateTime64, pero devuelve NULL cuando encuentra un formato de fecha que no se puede analizar.
Sintaxis
parseDateTime64OrNull(time_string, format[, timezone])Argumentos
time_string— Cadena que se analizará como DateTime64.Stringformat— Cadena de formato que especifica cómo analizar time_string.Stringtimezone— Opcional. Zona horaria.String
Valor devuelto
Devuelve el valor DateTime64 analizado a partir de la cadena de entrada, o NULL si el análisis falla. Nullable(DateTime64)
Ejemplos
Ejemplo de uso
SELECT parseDateTime64OrNull('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')┌─parseDateTime64OrNull('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')─┐
│ 2025-01-04 23:00:00.123000 │
└──────────────────────────────────────────────────────────────────────────┘parseDateTime64OrZero
Introducido en: v24.11.0
Igual que parseDateTime64, pero devuelve una fecha cero cuando encuentra un formato de fecha que no se puede analizar.
Sintaxis
parseDateTime64OrZero(time_string, format[, timezone])Argumentos
time_string— Cadena que se analizará como DateTime64.Stringformat— Cadena de formato que especifica cómo analizar time_string.Stringtimezone— Opcional. Zona horaria.String
Valor devuelto
Devuelve un DateTime64 interpretado a partir de la cadena de entrada, o el valor cero de DateTime64 si el análisis falla. DateTime64
Ejemplos
Ejemplo de uso
SELECT parseDateTime64OrZero('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')┌─parseDateTime64OrZero('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')─┐
│ 2025-01-04 23:00:00.123000 │
└──────────────────────────────────────────────────────────────────────────┘parseDateTimeBestEffort
Introducido en: v1.1.0
Convierte una fecha y hora en representación String al tipo de dato DateTime. La función analiza ISO 8601, RFC 1123 - 5.2.14 RFC-822 Date and Time Specification, los formatos de fecha y hora de ClickHouse y algunos otros.
Formatos no estándar compatibles:
- Una cadena que contiene un
Unix timestampde 9..10 dígitos. - Una cadena con una fecha y un componente de hora:
YYYYMMDDhhmmss,DD/MM/YYYY hh:mm:ss,DD-MM-YY hh:mm,YYYY-MM-DD hh:mm:ss, etc. - Una cadena con una fecha, pero sin componente de hora:
YYYY,YYYYMM,YYYY*MM,DD/MM/YYYY,DD-MM-YYetc. - Una cadena con un día y una hora:
DD,DD hh,DD hh:mm. En este caso,MMse sustituye por01. - Una cadena que incluye la fecha y hora junto con información del desfase de zona horaria:
YYYY-MM-DD hh:mm:ss ±h:mm, etc. - Una marca de tiempo de syslog:
Mmm dd hh:mm:ss. Por ejemplo,Jun 9 14:20:32.
En todos los formatos con separador, la función analiza nombres de meses expresados con el nombre completo o con las tres primeras letras del nombre del mes. Si no se especifica el año, se considera que es el año actual.
Sintaxis
parseDateTimeBestEffort(time_string[, time_zone])Argumentos
time_string— Cadena que contiene una fecha y una hora para convertir.Stringtime_zone— Opcional. Zona horaria según la cual se analizatime_string.String
Valor devuelto
Devuelve time_string como DateTime. DateTime
Ejemplos
Ejemplo de uso
SELECT parseDateTimeBestEffort('23/10/2025 12:12:57') AS parseDateTimeBestEffort┌─parseDateTimeBestEffort─┐
│ 2025-10-23 12:12:57 │
└─────────────────────────┘Con zona horaria
SELECT parseDateTimeBestEffort('Sat, 18 Aug 2025 07:22:16 GMT', 'Asia/Istanbul') AS parseDateTimeBestEffort┌─parseDateTimeBestEffort─┐
│ 2025-08-18 10:22:16 │
└─────────────────────────┘Marca temporal Unix
SELECT parseDateTimeBestEffort('1735689600') AS parseDateTimeBestEffort┌─parseDateTimeBestEffort─┐
│ 2025-01-01 00:00:00 │
└─────────────────────────┘parseDateTimeBestEffortOrNull
Introducido en: v1.1.0
Igual que parseDateTimeBestEffort, excepto que devuelve NULL cuando encuentra un formato de fecha que no se puede procesar.
La función analiza ISO 8601, RFC 1123 - 5.2.14 RFC-822 Date and Time Specification, los formatos de fecha y hora de ClickHouse y algunos otros.
Formatos no estándar admitidos:
- Una cadena que contiene un Unix timestamp de 9..10 dígitos.
- Una cadena con una fecha y un componente de hora:
YYYYMMDDhhmmss,DD/MM/YYYY hh:mm:ss,DD-MM-YY hh:mm,YYYY-MM-DD hh:mm:ss, etc. - Una cadena con una fecha, pero sin componente de hora:
YYYY,YYYYMM,YYYY*MM,DD/MM/YYYY,DD-MM-YY, etc. - Una cadena con un día y una hora:
DD,DD hh,DD hh:mm. En este caso,MMse sustituye por01. - Una cadena que incluye la fecha y la hora junto con información de desplazamiento de zona horaria:
YYYY-MM-DD hh:mm:ss ±h:mm, etc. - Un timestamp de syslog:
Mmm dd hh:mm:ss. Por ejemplo,Jun 9 14:20:32.
En todos los formatos con separador, la función analiza nombres de meses expresados con su nombre completo o con las tres primeras letras del nombre del mes. Si no se especifica el año, se considera que es el año actual.
Sintaxis
parseDateTimeBestEffortOrNull(time_string[, time_zone])Argumentos
time_string—Stringque contiene una fecha y hora para convertir.Stringtime_zone— Opcional. Zona horaria según la que se interpretatime_string.String
Valor devuelto
Devuelve time_string como DateTime, o NULL si la entrada no se puede interpretar. DateTime o NULL
Ejemplos
Ejemplo de uso
SELECT parseDateTimeBestEffortOrNull('23/10/2025 12:12:57') AS valid,
parseDateTimeBestEffortOrNull('invalid') AS invalid┌───────────────valid─┬─invalid─┐
│ 2025-10-23 12:12:57 │ ᴺᵁᴸᴸ │
└─────────────────────┴─────────┘parseDateTimeBestEffortOrZero
Introducido en: v1.1.0
Igual que parseDateTimeBestEffort, excepto que devuelve una fecha cero o una fecha y hora cero cuando encuentra un formato de fecha que no puede procesar.
La función analiza ISO 8601, RFC 1123 - 5.2.14 RFC-822 Date and Time Specification, los formatos de fecha y hora de ClickHouse y algunos otros.
Formatos no estándar compatibles:
- Una cadena que contiene una Unix timestamp de 9..10 dígitos.
- Una cadena con una fecha y un componente de hora:
YYYYMMDDhhmmss,DD/MM/YYYY hh:mm:ss,DD-MM-YY hh:mm,YYYY-MM-DD hh:mm:ss, etc. - Una cadena con una fecha, pero sin componente de hora:
YYYY,YYYYMM,YYYY*MM,DD/MM/YYYY,DD-MM-YYetc. - Una cadena con un día y una hora:
DD,DD hh,DD hh:mm. En este caso,MMse sustituye por01. - Una cadena que incluye la fecha y la hora junto con información del desfase de zona horaria:
YYYY-MM-DD hh:mm:ss ±h:mm, etc. - Una marca de tiempo de syslog:
Mmm dd hh:mm:ss. Por ejemplo,Jun 9 14:20:32.
Para todos los formatos con separador, la función analiza nombres de meses expresados con su nombre completo o con las tres primeras letras del nombre del mes. Si no se especifica el año, se considera igual al año actual.
Sintaxis
parseDateTimeBestEffortOrZero(time_string[, time_zone])Argumentos
time_string—Stringque contiene una fecha y hora para convertir.Stringtime_zone— Opcional. Zona horaria según la cual se interpretatime_string.String
Valor devuelto
Devuelve time_string como un DateTime, o una fecha cero/fecha y hora cero (1970-01-01 o 1970-01-01 00:00:00) si no se puede interpretar la entrada. DateTime
Ejemplos
Ejemplo de uso
SELECT parseDateTimeBestEffortOrZero('23/10/2025 12:12:57') AS valid,
parseDateTimeBestEffortOrZero('invalid') AS invalid┌───────────────valid─┬─────────────invalid─┐
│ 2025-10-23 12:12:57 │ 1970-01-01 00:00:00 │
└─────────────────────┴─────────────────────┘parseDateTimeBestEffortUS
Introducido en: v1.1.0
Esta función se comporta como parseDateTimeBestEffort para formatos de fecha ISO, p. ej., YYYY-MM-DD hh:mm:ss, y otros formatos de fecha en los que los componentes de mes y día pueden extraerse de forma inequívoca, p. ej., YYYYMMDDhhmmss, YYYY-MM, DD hh o YYYY-MM-DD hh:mm:ss ±h:mm.
Si los componentes de mes y día no pueden extraerse de forma inequívoca, p. ej., MM/DD/YYYY, MM-DD-YYYY o MM-DD-YY, da preferencia al formato de fecha de EE. UU. en lugar de DD/MM/YYYY, DD-MM-YYYY o DD-MM-YY.
Como excepción a lo anterior, si el mes es mayor que 12 y menor o igual que 31, esta función vuelve al comportamiento de parseDateTimeBestEffort; p. ej., 15/08/2020 se interpreta como 2020-08-15.
Sintaxis
parseDateTimeBestEffortUS(time_string[, time_zone])Argumentos
time_string—Stringque contiene una fecha y hora que se convertirán.Stringtime_zone— Opcional. Zona horaria según la cual se interpretatime_string.String
Valor devuelto
Devuelve time_string como DateTime y, en casos ambiguos, prioriza el formato de fecha de EE. UU. DateTime
Ejemplos
Ejemplo de uso
SELECT parseDateTimeBestEffortUS('02/10/2025') AS us_format,
parseDateTimeBestEffortUS('15/08/2025') AS fallback_to_standard┌───────────us_format─┬─fallback_to_standard─┐
│ 2025-02-10 00:00:00 │ 2025-08-15 00:00:00 │
└─────────────────────┴──────────────────────┘parseDateTimeBestEffortUSOrNull
Introducido en: v1.1.0
Igual que la función parseDateTimeBestEffortUS, salvo que devuelve NULL cuando encuentra un formato de fecha que no se puede procesar.
Esta función se comporta como parseDateTimeBestEffort con los formatos de fecha ISO, pero en los casos ambiguos da prioridad al formato de fecha de EE. UU. y devuelve NULL si se producen errores de análisis.
Sintaxis
parseDateTimeBestEffortUSOrNull(time_string[, time_zone])Argumentos
time_string—Stringque contiene una fecha y hora para convertir.Stringtime_zone— Opcional. Zona horaria según la cual se interpretatime_string.String
Valor devuelto
Devuelve time_string como un DateTime con preferencia por el formato de EE. UU., o NULL si la entrada no se puede interpretar. DateTime o NULL
Ejemplos
Ejemplo de uso
SELECT parseDateTimeBestEffortUSOrNull('02/10/2025') AS valid_us,
parseDateTimeBestEffortUSOrNull('invalid') AS invalid┌────────────valid_us─┬─invalid─┐
│ 2025-02-10 00:00:00 │ ᴺᵁᴸᴸ │
└─────────────────────┴─────────┘parseDateTimeBestEffortUSOrZero
Introducido en: v1.1.0
Igual que la función parseDateTimeBestEffortUS, salvo que devuelve una fecha cero (1970-01-01) o una fecha cero con hora (1970-01-01 00:00:00) cuando encuentra un formato de fecha que no puede procesarse.
Esta función se comporta como parseDateTimeBestEffort para los formatos de fecha ISO, pero en los casos ambiguos da prioridad al formato de fecha de EE. UU. y devuelve un valor cero si se producen errores de análisis.
Sintaxis
parseDateTimeBestEffortUSOrZero(time_string[, time_zone])Argumentos
time_string—Stringque contiene una fecha y hora que se va a convertir.Stringtime_zone— Opcional. Zona horaria según la cual se interpretatime_string.String
Valor devuelto
Devuelve time_string como un DateTime usando la preferencia de formato de EE. UU., o una fecha/fecha y hora cero (1970-01-01 o 1970-01-01 00:00:00) si no se puede interpretar la entrada. DateTime
Ejemplos
Ejemplo de uso
SELECT parseDateTimeBestEffortUSOrZero('02/10/2025') AS valid_us,
parseDateTimeBestEffortUSOrZero('invalid') AS invalid┌────────────valid_us─┬─────────────invalid─┐
│ 2025-02-10 00:00:00 │ 1970-01-01 00:00:00 │
└─────────────────────┴─────────────────────┘parseDateTimeInJodaSyntax
Introducido en: v23.3.0
Interpreta una cadena de fecha y hora según una cadena de formato de fecha de Joda.
Esta función es la inversa de formatDateTimeInJodaSyntax.
Interpreta un argumento de tipo String usando una cadena de formato de estilo Joda. Devuelve un valor de tipo DateTime.
Consulta la documentación de Joda Time para conocer los patrones de formato.
Sintaxis
parseDateTimeInJodaSyntax(time_string, format[, timezone])Argumentos
time_string— Cadena para analizar como DateTime.Stringformat— Cadena de formato en sintaxis Joda que especifica cómo interpretar time_string.Stringtimezone— Opcional. Zona horaria.String
Valor devuelto
Devuelve un DateTime interpretado a partir de la cadena de entrada según la cadena de formato de estilo Joda. DateTime
Ejemplos
Ejemplo de uso
SELECT parseDateTimeInJodaSyntax('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')┌─parseDateTimeInJodaSyntax('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')─┐
│ 2025-01-04 23:00:00 │
└─────────────────────────────────────────────────────────────────────────┘parseDateTimeInJodaSyntaxOrNull
Introducido en: v23.3.0
Igual que parseDateTimeInJodaSyntax, pero devuelve NULL cuando encuentra un formato de fecha que no se puede analizar.
Sintaxis
parseDateTimeInJodaSyntaxOrNull(time_string, format[, timezone])Argumentos
time_string— Cadena para analizar como DateTime.Stringformat— Cadena de formato en sintaxis Joda que especifica cómo interpretar time_string.Stringtimezone— Opcional. Zona horaria.String
Valor devuelto
Devuelve el valor DateTime obtenido al interpretar la cadena de entrada, o NULL si el análisis falla. Nullable(DateTime)
Ejemplos
Ejemplo de uso
SELECT parseDateTimeInJodaSyntaxOrNull('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')┌─parseDateTimeInJodaSyntaxOrNull('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')─┐
│ 2025-01-04 23:00:00 │
└───────────────────────────────────────────────────────────────────────────────┘parseDateTimeInJodaSyntaxOrZero
Introducido en: v23.3.0
Igual que parseDateTimeInJodaSyntax, pero devuelve la fecha cero cuando encuentra un formato de fecha que no se puede analizar.
Sintaxis
parseDateTimeInJodaSyntaxOrZero(time_string, format[, timezone])Argumentos
time_string— Cadena que se analizará para convertirla en DateTime.Stringformat— Cadena de formato en sintaxis Joda que especifica cómo analizar time_string.Stringtimezone— Opcional. Zona horaria.String
Valor devuelto
Devuelve el DateTime obtenido al analizar la cadena de entrada, o el DateTime cero si el análisis falla. DateTime
Ejemplos
Ejemplo de uso
SELECT parseDateTimeInJodaSyntaxOrZero('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')┌─parseDateTimeInJodaSyntaxOrZero('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')─┐
│ 2025-01-04 23:00:00 │
└───────────────────────────────────────────────────────────────────────────────┘parseDateTimeOrNull
Introducido en: v23.3.0
Igual que parseDateTime, pero devuelve NULL cuando encuentra un formato de fecha que no se puede analizar.
Sintaxis
parseDateTimeOrNull(time_string, format[, timezone])Alias: str_to_date
Argumentos
time_string— Cadena para analizar como DateTime.Stringformat— Cadena de formato que especifica cómo analizartime_string.Stringtimezone— Opcional. Zona horaria.String
Valor devuelto
Devuelve el DateTime obtenido a partir de la cadena de entrada, o NULL si el análisis falla. Nullable(DateTime)
Ejemplos
Ejemplo de uso
SELECT parseDateTimeOrNull('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')┌─parseDateTimeOrNull('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')─┐
│ 2025-01-04 23:00:00 │
└─────────────────────────────────────────────────────────────────┘parseDateTimeOrZero
Introducido en: v23.3.0
Igual que parseDateTime, pero devuelve una fecha cero cuando encuentra un formato de fecha que no se puede analizar.
Sintaxis
parseDateTimeOrZero(time_string, format[, timezone])Argumentos
time_string— Cadena que se debe analizar como DateTime.Stringformat— Cadena de formato que especifica cómo analizar time_string.Stringtimezone— Opcional. Zona horaria.String
Valor devuelto
Devuelve el DateTime analizado a partir de la cadena de entrada, o un DateTime con valor cero si el análisis falla. DateTime
Ejemplos
Ejemplo de uso
SELECT parseDateTimeOrZero('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')┌─parseDateTimeOrZero('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')─┐
│ 2025-01-04 23:00:00 │
└─────────────────────────────────────────────────────────────────┘reinterpret
Introducido en: v1.1.0
Usa la misma secuencia de bytes en memoria de origen para el valor proporcionado x y la reinterpreta como el tipo de destino.
Cuando el tipo de destino es String, un Array de origen solo es compatible si su tipo de elemento es de tamaño fijo y contiguo en memoria (por ejemplo, Array(UInt8) o Array(FixedString(2))); los bytes de sus elementos se copian literalmente en su orden nativo en memoria, por lo que el resultado puede volver a reinterpretarse como el tipo Array original en cualquier arquitectura. Los arrays cuyos elementos son de longitud variable (por ejemplo, Array(String)) o Nullable (por ejemplo, Array(Nullable(Int32))) no son compatibles.
Sintaxis
reinterpret(x, type)Argumentos
x— Valor que se va a reinterpretar. Al reinterpretarlo comoString, unArrayde origen debe tener elementos contiguos de tamaño fijo.Anytype— Tipo de destino. Si es un array, el tipo de elemento del array debe ser de longitud fija.String
Valor devuelto
Valor del tipo de destino. Any
Ejemplos
Ejemplo de uso
SELECT reinterpret(toInt8(-1), 'UInt8') AS int_to_uint,
reinterpret(toInt8(1), 'Float32') AS int_to_float,
reinterpret('1', 'UInt32') AS string_to_int┌─int_to_uint─┬─int_to_float─┬─string_to_int─┐
│ 255 │ 1e-45 │ 49 │
└─────────────┴──────────────┴───────────────┘Ejemplo de Array
SELECT reinterpret(x'3108b4403108d4403108b4403108d440', 'Array(Float32)') AS string_to_array_of_Float32┌─string_to_array_of_Float32─┐
│ [5.626,6.626,5.626,6.626] │
└────────────────────────────┘Ejemplo de Array a String
SELECT hex(reinterpret([toUInt8(1), toUInt8(2), toUInt8(255)]::Array(UInt8), 'String')) AS array_of_UInt8_to_string┌─array_of_UInt8_to_string─┐
│ 0102FF │
└──────────────────────────┘reinterpretAsDate
Introducido en: v1.1.0
Reinterpreta el valor de entrada como un valor Date (suponiendo un orden little endian), que representa el número de días desde el inicio de la época Unix 1970-01-01
Sintaxis
reinterpretAsDate(x)Argumentos
x— Número de días desde el inicio de la época Unix.(U)Int*oFloat*oDateoDateTimeoUUIDoStringoFixedString
Valor devuelto
Date. Date
Ejemplos
Ejemplo de uso
SELECT reinterpretAsDate(65), reinterpretAsDate('A')┌─reinterpretAsDate(65)─┬─reinterpretAsDate('A')─┐
│ 1970-03-07 │ 1970-03-07 │
└───────────────────────┴────────────────────────┘reinterpretAsDateTime
Introducido en: v1.1.0
Reinterpreta el valor de entrada como un valor DateTime (suponiendo el orden little endian), que es el número de días transcurridos desde el inicio de la época Unix, 1970-01-01
Sintaxis
reinterpretAsDateTime(x)Argumentos
x— Número de segundos desde el inicio de la época Unix.(U)Int*oFloat*oDateoDateTimeoUUIDoStringoFixedString
Valor devuelto
Fecha y hora. DateTime
Ejemplos
Ejemplo de uso
SELECT reinterpretAsDateTime(65), reinterpretAsDateTime('A')┌─reinterpretAsDateTime(65)─┬─reinterpretAsDateTime('A')─┐
│ 1970-01-01 00:01:05 │ 1970-01-01 00:01:05 │
└───────────────────────────┴────────────────────────────┘reinterpretAsFixedString
Introducido en: v1.1.0
Reinterpreta el valor de entrada como una cadena de longitud fija (asumiendo el orden little endian). Los bytes nulos del final se ignoran; por ejemplo, para el valor UInt32 255, la función devuelve una cadena con un solo carácter.
Sintaxis
reinterpretAsFixedString(x)Argumentos
Valor devuelto
Cadena fija que contiene los bytes que representan x. FixedString
Ejemplos
Ejemplo de uso
-- The result is a sequence of bytes, so it is shown with `hex`.
SELECT
hex(reinterpretAsFixedString(toDateTime('1970-01-01 01:01:05'))),
hex(reinterpretAsFixedString(toDate('1970-03-07')))┌─hex(reinterpretAsFixedString(toDateTime('1970-01-01 01:01:05')))─┬─hex(reinterpretAsFixedString(toDate('1970-03-07')))─┐
│ 510E0000 │ 4100 │
└──────────────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────┘reinterpretAsFloat32
Introducido en: v1.1.0
Reinterpreta el valor de entrada como un valor de tipo Float32.
A diferencia de CAST, la función no intenta preservar el valor original; si el tipo de destino no puede representar el tipo de entrada, el resultado no está definido.
Sintaxis
reinterpretAsFloat32(x)Argumentos
x— Valor para reinterpretar como Float32.(U)Int*oFloat*oDateoDateTimeoUUIDoStringoFixedString
Valor devuelto
Devuelve el valor reinterpretado x. Float32
Ejemplos
Ejemplo de uso
SELECT reinterpretAsUInt32(toFloat32(0.2)) AS x, reinterpretAsFloat32(x)┌──────────x─┬─reinterpretAsFloat32(x)─┐
│ 1045220557 │ 0.2 │
└────────────┴─────────────────────────┘reinterpretAsFloat64
Introducida en: v1.1.0
Reinterpreta el valor de entrada como un valor de tipo Float64.
A diferencia de CAST, la función no intenta preservar el valor original; si el tipo de destino no puede representar el tipo de entrada, el resultado no está definido.
Sintaxis
reinterpretAsFloat64(x)Argumentos
x— Valor para reinterpretar como Float64.(U)Int*oFloat*oDateoDateTimeoUUIDoStringoFixedString
Valor devuelto
Devuelve el valor reinterpretado x. Float64
Ejemplos
Ejemplo de uso
SELECT reinterpretAsUInt64(toFloat64(0.2)) AS x, reinterpretAsFloat64(x)┌───────────────────x─┬─reinterpretAsFloat64(x)─┐
│ 4596373779694328218 │ 0.2 │
└─────────────────────┴─────────────────────────┘reinterpretAsInt128
Introducido en: v1.1.0
Reinterpreta el valor de entrada como un valor de tipo Int128.
A diferencia de CAST, la función no intenta conservar el valor original; si el tipo de destino no puede representar el tipo de entrada, el resultado no está definido.
Sintaxis
reinterpretAsInt128(x)Argumentos
x— Valor que se va a reinterpretar como Int128.(U)Int*oFloat*oDateoDateTimeoUUIDoStringoFixedString
Valor devuelto
Devuelve el valor reinterpretado x. Int128
Ejemplos
Ejemplo de uso
SELECT
toInt64(257) AS x,
toTypeName(x),
reinterpretAsInt128(x) AS res,
toTypeName(res)┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ Int64 │ 257 │ Int128 │
└─────┴───────────────┴─────┴─────────────────┘reinterpretAsInt16
Introducido en: v1.1.0
Reinterpreta el valor de entrada como un valor de tipo Int16.
A diferencia de CAST, la función no intenta conservar el valor original; si el tipo de destino no puede representar el tipo de entrada, el resultado no está definido.
Sintaxis
reinterpretAsInt16(x)Argumentos
x— Valor que se reinterpretará como Int16.(U)Int*oFloat*oDateoDateTimeoUUIDoStringoFixedString
Valor devuelto
Devuelve el valor reinterpretado x. Int16
Ejemplos
Ejemplo de uso
SELECT
toInt8(257) AS x,
toTypeName(x),
reinterpretAsInt16(x) AS res,
toTypeName(res)┌─x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 1 │ Int8 │ 1 │ Int16 │
└───┴───────────────┴─────┴─────────────────┘reinterpretAsInt256
Introducido en: v1.1.0
Reinterpreta el valor de entrada como un valor de tipo Int256.
A diferencia de CAST, la función no intenta conservar el valor original; si el tipo de destino no puede representar el tipo de entrada, el resultado es indefinido.
Sintaxis
reinterpretAsInt256(x)Argumentos
x— Valor que se va a reinterpretar como Int256.(U)Int*oFloat*oDateoDateTimeoUUIDoStringoFixedString
Valor devuelto
Devuelve el valor reinterpretado de x. Int256
Ejemplos
Ejemplo de uso
SELECT
toInt128(257) AS x,
toTypeName(x),
reinterpretAsInt256(x) AS res,
toTypeName(res)┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ Int128 │ 257 │ Int256 │
└─────┴───────────────┴─────┴─────────────────┘reinterpretAsInt32
Introducido en: v1.1.0
Reinterpreta el valor de entrada como un valor de tipo Int32.
A diferencia de CAST, la función no intenta preservar el valor original; si el tipo de destino no puede representar el tipo de entrada, el resultado no está definido.
Sintaxis
reinterpretAsInt32(x)Argumentos
x— Valor que se reinterpretará como Int32.(U)Int*oFloat*oDateoDateTimeoUUIDoStringoFixedString
Valor devuelto
Devuelve el valor reinterpretado x. Int32
Ejemplos
Ejemplo de uso
SELECT
toInt16(257) AS x,
toTypeName(x),
reinterpretAsInt32(x) AS res,
toTypeName(res)┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ Int16 │ 257 │ Int32 │
└─────┴───────────────┴─────┴─────────────────┘reinterpretAsInt64
Introducido en: v1.1.0
Reinterpreta el valor de entrada como un valor del tipo Int64.
A diferencia de CAST, la función no intenta preservar el valor original; si el tipo de destino no puede representar el tipo de entrada, el resultado no está definido.
Sintaxis
reinterpretAsInt64(x)Argumentos
x— Valor que se reinterpretará como Int64.(U)Int*oFloat*oDateoDateTimeoUUIDoStringoFixedString
Valor devuelto
Devuelve el valor reinterpretado x. Int64
Ejemplos
Ejemplo de uso
SELECT
toInt32(257) AS x,
toTypeName(x),
reinterpretAsInt64(x) AS res,
toTypeName(res)┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ Int32 │ 257 │ Int64 │
└─────┴───────────────┴─────┴─────────────────┘reinterpretAsInt8
Introducido en: v1.1.0
Reinterpreta el valor de entrada como un valor de tipo Int8.
A diferencia de CAST, la función no intenta conservar el valor original; si el tipo de destino no puede representar el tipo de entrada, el resultado no está definido.
Sintaxis
reinterpretAsInt8(x)Argumentos
x— Valor que se va a reinterpretar como Int8.(U)Int*oFloat*oDateoDateTimeoUUIDoStringoFixedString
Valor devuelto
Devuelve el valor reinterpretado de x. Int8
Ejemplos
Ejemplo de uso
SELECT
toUInt8(257) AS x,
toTypeName(x),
reinterpretAsInt8(x) AS res,
toTypeName(res)┌─x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 1 │ UInt8 │ 1 │ Int8 │
└───┴───────────────┴─────┴─────────────────┘reinterpretAsString
Introducido en: v1.1.0
Reinterpreta el valor de entrada como una cadena.
Para los valores escalares, el orden de bytes se normaliza a little endian y los bytes nulos del final se ignoran; por ejemplo, para el valor UInt32 255, la función devuelve una cadena con un solo carácter.
Para un Array de elementos de tamaño fijo, los bytes de los elementos se copian literalmente en su orden nativo en memoria, sin recortar los bytes cero del final y sin normalizar a little endian, por lo que el resultado puede reinterpretarse de nuevo como el tipo Array original en cualquier arquitectura.
Sintaxis
reinterpretAsString(x)Argumentos
Valor devuelto
String que contiene los bytes que representan x. String
Ejemplos
Ejemplo de uso
-- The result is a sequence of bytes, so it is shown with `hex`.
SELECT
hex(reinterpretAsString(toDateTime('1970-01-01 01:01:05'))),
hex(reinterpretAsString(toDate('1970-03-07')))┌─hex(reinterpretAsString(toDateTime('1970-01-01 01:01:05')))─┬─hex(reinterpretAsString(toDate('1970-03-07')))─┐
│ 510E │ 41 │
└─────────────────────────────────────────────────────────────┴────────────────────────────────────────────────┘Ejemplo de conversión de Array a String
SELECT hex(reinterpretAsString([toUInt8(1), toUInt8(2), toUInt8(255)]::Array(UInt8))) AS array_of_UInt8_to_string┌─array_of_UInt8_to_string─┐
│ 0102FF │
└──────────────────────────┘reinterpretAsUInt128
Introducido en: v1.1.0
Reinterpreta el valor de entrada como un valor de tipo UInt128.
A diferencia de CAST, la función no intenta preservar el valor original; si el tipo de destino no puede representar el tipo de entrada, el resultado es indefinido.
Sintaxis
reinterpretAsUInt128(x)Argumentos
x— Valor que se va a reinterpretar como UInt128.(U)Int*oFloat*oDateoDateTimeoUUIDoStringoFixedString
Valor devuelto
Devuelve el valor reinterpretado x. UInt128
Ejemplos
Ejemplo de uso
SELECT
toUInt64(257) AS x,
toTypeName(x),
reinterpretAsUInt128(x) AS res,
toTypeName(res)┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ UInt64 │ 257 │ UInt128 │
└─────┴───────────────┴─────┴─────────────────┘reinterpretAsUInt16
Introducido en: v1.1.0
Reinterpreta el valor de entrada como un valor de tipo UInt16.
A diferencia de CAST, la función no intenta preservar el valor original; si el tipo de destino no puede representar el tipo de entrada, el resultado no está definido.
Sintaxis
reinterpretAsUInt16(x)Argumentos
x— Valor que se va a reinterpretar como UInt16.(U)Int*oFloat*oDateoDateTimeoUUIDoStringoFixedString
Valor devuelto
Devuelve el valor reinterpretado x. UInt16
Ejemplos
Ejemplo de uso
SELECT
toUInt8(257) AS x,
toTypeName(x),
reinterpretAsUInt16(x) AS res,
toTypeName(res)┌─x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 1 │ UInt8 │ 1 │ UInt16 │
└───┴───────────────┴─────┴─────────────────┘reinterpretAsUInt256
Introducido en: v1.1.0
Reinterpreta el valor de entrada como un valor de tipo UInt256.
A diferencia de CAST, la función no intenta preservar el valor original; si el tipo de destino no puede representar el tipo de entrada, el resultado es indefinido.
Sintaxis
reinterpretAsUInt256(x)Argumentos
x— Valor para reinterpretar como UInt256.(U)Int*oFloat*oDateoDateTimeoUUIDoStringoFixedString
Valor devuelto
Devuelve el valor reinterpretado x. UInt256
Ejemplos
Ejemplo de uso
SELECT
toUInt128(257) AS x,
toTypeName(x),
reinterpretAsUInt256(x) AS res,
toTypeName(res)┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ UInt128 │ 257 │ UInt256 │
└─────┴───────────────┴─────┴─────────────────┘reinterpretAsUInt32
Introducido en: v1.1.0
Reinterpreta el valor de entrada como un valor de tipo UInt32.
A diferencia de CAST, la función no intenta preservar el valor original; si el tipo de destino no puede representar el tipo de entrada, el resultado no está definido.
Sintaxis
reinterpretAsUInt32(x)Argumentos
x— Valor que se reinterpretará como UInt32.(U)Int*oFloat*oDateoDateTimeoUUIDoStringoFixedString
Valor devuelto
Devuelve el valor reinterpretado x. UInt32
Ejemplos
Ejemplo de uso
SELECT
toUInt16(257) AS x,
toTypeName(x),
reinterpretAsUInt32(x) AS res,
toTypeName(res)┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ UInt16 │ 257 │ UInt32 │
└─────┴───────────────┴─────┴─────────────────┘reinterpretAsUInt64
Introducido en: v1.1.0
Reinterpreta el valor de entrada como un valor de tipo UInt64.
A diferencia de CAST, la función no intenta conservar el valor original; si el tipo de destino no puede representar el tipo de entrada, el resultado es indefinido.
Sintaxis
reinterpretAsUInt64(x)Argumentos
x— Valor que se va a reinterpretar como UInt64.Int*oUInt*oFloat*oDateoDateTimeoUUIDoStringoFixedString
Valor devuelto
Devuelve el valor reinterpretado de x. UInt64
Ejemplos
Ejemplo de uso
SELECT
toUInt32(257) AS x,
toTypeName(x),
reinterpretAsUInt64(x) AS res,
toTypeName(res)┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ UInt32 │ 257 │ UInt64 │
└─────┴───────────────┴─────┴─────────────────┘reinterpretAsUInt8
Introducido en: v1.1.0
Reinterpreta el valor de entrada como un valor de tipo UInt8.
A diferencia de CAST, la función no intenta preservar el valor original; si el tipo de destino no puede representar el tipo de entrada, el resultado no está definido.
Sintaxis
reinterpretAsUInt8(x)Argumentos
x— Valor para reinterpretar como UInt8.(U)Int*oFloat*oDateoDateTimeoUUIDoStringoFixedString
Valor devuelto
Devuelve el valor reinterpretado x. UInt8
Ejemplos
Ejemplo de uso
SELECT
toInt8(-1) AS val,
toTypeName(val),
reinterpretAsUInt8(val) AS res,
toTypeName(res);┌─val─┬─toTypeName(val)─┬─res─┬─toTypeName(res)─┐
│ -1 │ Int8 │ 255 │ UInt8 │
└─────┴─────────────────┴─────┴─────────────────┘reinterpretAsUUID
Introducido en: v1.1.0
Acepta una cadena de 16 bytes y devuelve un UUID interpretando cada mitad de 8 bytes en orden de bytes little-endian. Si la cadena no tiene la longitud suficiente, la función actúa como si se rellenara al final con la cantidad necesaria de bytes nulos. Si la cadena tiene más de 16 bytes, se ignoran los bytes adicionales del final.
Sintaxis
reinterpretAsUUID(fixed_string)Argumentos
fixed_string— Cadena de bytes en orden big-endian.FixedString
Valor devuelto
Un valor del tipo UUID. UUID
Ejemplos
De cadena a UUID
SELECT reinterpretAsUUID(reverse(unhex('000102030405060708090a0b0c0d0e0f')))┌─reinterpretAsUUID(reverse(unhex('000102030405060708090a0b0c0d0e0f')))─┐
│ 08090a0b-0c0d-0e0f-0001-020304050607 │
└───────────────────────────────────────────────────────────────────────┘toBFloat16
Introducido en: v1.1.0
Convierte un valor de entrada a un valor de tipo BFloat16. Lanza una excepción en caso de error.
Véase también:
Sintaxis
toBFloat16(expr)Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Expression
Valor devuelto
Devuelve un valor brain-float de 16 bits. BFloat16
Ejemplos
Ejemplo de uso
SELECT
toBFloat16(toFloat32(42.7)),
toBFloat16(toFloat32('42.7')),
toBFloat16('42.7')
FORMAT Vertical;Row 1:
──────
toBFloat16(toFloat32(42.7)): 42.5
toBFloat16(toFloat32('42.7')): 42.5
toBFloat16('42.7'): 42.5toBFloat16OrNull
Introducido en: v1.1.0
Convierte un valor de entrada de tipo String en un valor de tipo BFloat16. Si la cadena no representa un valor de coma flotante, la función devuelve NULL.
Argumentos admitidos:
- Representaciones en cadena de valores numéricos.
Argumentos no admitidos (devuelven NULL):
- Representaciones en cadena de valores binarios y hexadecimales.
- Valores numéricos.
Vea también:
Sintaxis
toBFloat16OrNull(x)Argumentos
x— La representación en cadena de un número.String
Valor devuelto
Devuelve un valor brain-float de 16 bits o NULL en caso contrario. BFloat16 o NULL
Ejemplos
Ejemplo de uso
SELECT toBFloat16OrNull('0x5E'), -- unsupported arguments
toBFloat16OrNull('12.3'), -- typical use
toBFloat16OrNull('12.3456789') -- silent loss of precision\N 12.25 12.3125toBFloat16OrZero
Introducido en: v1.1.0
Convierte un valor de entrada de tipo String en un valor de tipo BFloat16. Si la cadena no representa un valor de coma flotante, la función devuelve cero.
Argumentos admitidos:
- Representaciones en cadena de valores numéricos.
Argumentos no admitidos (devuelven 0):
- Representaciones en cadena de valores binarios y hexadecimales.
- Valores numéricos.
Véase también:
Sintaxis
toBFloat16OrZero(x)Argumentos
x— Una representación en cadena de un número.String
Valor devuelto
Devuelve un valor brain-float de 16 bits; de lo contrario, 0. BFloat16
Ejemplos
Ejemplo de uso
SELECT toBFloat16OrZero('0x5E'), -- unsupported arguments
toBFloat16OrZero('12.3'), -- typical use
toBFloat16OrZero('12.3456789') -- silent loss of precision0 12.25 12.3125toBool
Introducido en: v22.2.0
Convierte un valor de entrada en un valor del tipo Bool.
Sintaxis
toBool(expr)Argumentos
expr— Expresión que devuelve un número o una cadena. Para las cadenas, acepta 'true' o 'false' (sin distinguir entre mayúsculas y minúsculas).(U)Int*oFloat*oStringoExpression
Valor devuelto
Devuelve true o false según la evaluación del argumento. Bool
Ejemplos
Ejemplo de uso
SELECT
toBool(toUInt8(1)),
toBool(toInt8(-1)),
toBool(toFloat32(1.01)),
toBool('true'),
toBool('false'),
toBool('FALSE')
FORMAT VerticalRow 1:
──────
toBool(toUInt8(1)): true
toBool(toInt8(-1)): true
toBool(toFloat32(1.01)): true
toBool('true'): true
toBool('false'): false
toBool('FALSE'): falsetoDate
Introducido en: v1.1.0
Convierte un valor de entrada al tipo Date.
Admite la conversión desde tipos String, FixedString, DateTime o numéricos.
Sintaxis
toDate(x)Argumentos
x— Valor de entrada para convertir.StringoFixedStringoDateTimeo(U)Int*oFloat*
Valor devuelto
Devuelve el valor de entrada convertido. Date
Ejemplos
Conversión de String a Date
SELECT toDate('2025-04-15')2025-04-15Conversión de DateTime a Date
SELECT toDate(toDateTime('2025-04-15 10:30:00'))2025-04-15Conversión de entero a fecha
SELECT toDate(20297)2025-07-28toDate32
Introducido en: v21.9.0
Convierte el argumento al tipo de dato Date32.
Si el valor está fuera del rango [0000-01-01, 9999-12-31], toDate32 devuelve los valores límite admitidos por Date32.
Si el argumento es de tipo Date, se tienen en cuenta sus límites.
Sintaxis
toDate32(expr)Argumentos
Valor devuelto
Devuelve una fecha de calendario. Date32
Ejemplos
Dentro del intervalo
SELECT toDate32('2025-01-01') AS value, toTypeName(value)
FORMAT VerticalRow 1:
──────
value: 2025-01-01
toTypeName(value): Date32Antes de 1900
SELECT toDate32('1899-01-01') AS value, toTypeName(value)
FORMAT VerticalRow 1:
──────
value: 1899-01-01
toTypeName(value): Date32toDate32OrDefault
Introducido en: v21.11.0
Convierte el argumento al tipo de dato Date32. Si el argumento no se puede convertir, lo que incluye un valor numérico fuera del rango de Date32, la función devuelve un valor predeterminado, que es el segundo argumento (si se especifica) o, de lo contrario, 1900-01-01, el valor predeterminado histórico de Date32 (no su límite inferior, que es 0000-01-01). Si el argumento es de tipo Date, se tienen en cuenta sus límites.
Tenga en cuenta que, a diferencia de toDate32, esta función no satura un argumento numérico fuera de rango a los límites de Date32; dicho argumento se considera no convertible.
Sintaxis
toDate32OrDefault(expr[, default])Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Stringo(U)Int*oFloat*default— Opcional. El valor predeterminado que se devolverá si el análisis falla.Date32
Valor devuelto
Un valor de tipo Date32 si la conversión se realiza correctamente; de lo contrario, devuelve el valor predeterminado si se proporciona, o 1900-01-01 en caso contrario. Date32
Ejemplos
Conversión correcta
SELECT toDate32OrDefault('1930-01-01', toDate32('2020-01-01'))1930-01-01Error de conversión
SELECT toDate32OrDefault('xx1930-01-01', toDate32('2020-01-01'))2020-01-01Número fuera de rango
SELECT toDate32OrDefault(toUInt64(18446744073709551615), toDate32('2020-01-01'))2020-01-01toDate32OrNull
Introducido en: v21.9.0
Convierte un valor de entrada a un valor de tipo Date32, pero devuelve NULL si recibe un argumento no válido.
Igual que toDate32, pero devuelve NULL si recibe un argumento no válido.
Sintaxis
toDate32OrNull(x)Argumentos
x— La representación en cadena de una fecha.String
Valor devuelto
Devuelve un valor Date32 si la conversión se realiza correctamente; de lo contrario, NULL. Date32 o NULL
Ejemplos
Ejemplo de uso
SELECT toDate32OrNull('2025-01-01'), toDate32OrNull('invalid')┌─toDate32OrNull('2025-01-01')─┬─toDate32OrNull('invalid')─┐
│ 2025-01-01 │ ᴺᵁᴸᴸ │
└──────────────────────────────┴───────────────────────────┘toDate32OrZero
Introducido en: v21.9.0
Convierte un valor de entrada en un valor de tipo Date32, pero devuelve el valor predeterminado 1900-01-01 si se recibe un argumento no válido.
Es igual que toDate32, pero devuelve 1900-01-01 si se recibe un argumento no válido.
Tenga en cuenta que 1900-01-01 es un valor predeterminado histórico para entradas no válidas, no el límite inferior de Date32, que es 0000-01-01.
Véase también:
Sintaxis
toDate32OrZero(x)Argumentos
x— La representación en cadena de una fecha.String
Valor devuelto
Devuelve un valor de Date32 si la operación se realiza correctamente; en caso contrario, el valor predeterminado histórico para una entrada no válida (1900-01-01). Date32
Ejemplos
Ejemplo de uso
SELECT toDate32OrZero('2025-01-01'), toDate32OrZero('')┌─toDate32OrZero('2025-01-01')─┬─toDate32OrZero('')─┐
│ 2025-01-01 │ 1900-01-01 │
└──────────────────────────────┴────────────────────┘toDateOrDefault
Introducido en: v21.11.0
Como toDate, pero si falla, devuelve un valor predeterminado, que es el segundo argumento (si se especifica) o, de lo contrario, el límite inferior de Date.
Sintaxis
toDateOrDefault(expr[, default])Argumentos
expr— Expresión que devuelve un número o una representación en cadena de un número.Stringo(U)Int*oFloat*default— Opcional. El valor predeterminado que se devuelve si el análisis no se puede realizar correctamente.Date
Valor devuelto
Un valor de tipo Date si la conversión se realiza correctamente; en caso contrario, devuelve el valor predeterminado si se proporciona, o 1970-01-01 si no. Date
Ejemplos
Conversión correcta
SELECT toDateOrDefault('2022-12-30')2022-12-30Conversión fallida
SELECT toDateOrDefault('', CAST('2023-01-01', 'Date'))2023-01-01toDateOrNull
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo Date, pero devuelve NULL si recibe un argumento no válido.
Igual que toDate, pero devuelve NULL si recibe un argumento no válido.
Un argumento entero se interpreta de la misma manera que en toDate (como un número de días desde 1970-01-01 si no supera 65535; en caso contrario, como una marca temporal Unix) y devuelve NULL si queda fuera del rango del tipo Date.
Sintaxis
toDateOrNull(x)Argumentos
x— Una representación en cadena de una fecha, o un número entero de días o una marca temporal Unix.Stringo(U)Int8/16/32/64
Valor devuelto
Devuelve un valor Date si la operación se realiza correctamente; de lo contrario, NULL. Date o NULL
Ejemplos
Ejemplo de uso
SELECT toDateOrNull('2025-12-30'), toDateOrNull('invalid')┌─toDateOrNull('2025-12-30')─┬─toDateOrNull('invalid')─┐
│ 2025-12-30 │ ᴺᵁᴸᴸ │
└────────────────────────────┴─────────────────────────┘toDateOrZero
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo Date, pero devuelve el límite inferior de Date si recibe un argumento no válido.
Igual que toDate, pero devuelve el límite inferior de Date si recibe un argumento no válido.
Véase también:
Sintaxis
toDateOrZero(x)Argumentos
x— Una representación en cadena de una fecha.String
Valor devuelto
Devuelve un valor de tipo Date si la operación se realiza correctamente; de lo contrario, devuelve el límite inferior de Date (1970-01-01). Date
Ejemplos
Ejemplo de uso
SELECT toDateOrZero('2025-12-30'), toDateOrZero('')┌─toDateOrZero('2025-12-30')─┬─toDateOrZero('')─┐
│ 2025-12-30 │ 1970-01-01 │
└────────────────────────────┴──────────────────┘toDateTime
Introducido en: v1.1.0
Convierte un valor de entrada al tipo DateTime.
Sintaxis
toDateTime(expr[, time_zone])Argumentos
Valor devuelto
Devuelve una fecha y hora. DateTime
Ejemplos
Ejemplo de uso
SELECT toDateTime('2025-01-01 00:00:00'), toDateTime(1735689600, 'UTC')
FORMAT VerticalRow 1:
──────
toDateTime('2025-01-01 00:00:00'): 2025-01-01 00:00:00
toDateTime(1735689600, 'UTC'): 2025-01-01 00:00:00toDateTime32
Introducido en: v20.9.0
Convierte un valor de entrada al tipo DateTime.
Admite conversiones desde String, FixedString, Date, Date32, Time, DateTime, DateTime64 o tipos numéricos ((U)Int8, (U)Int16, (U)Int32, (U)Int64, BFloat16, Float32, Float64). Los valores Decimal y Time64 no son compatibles y generan una excepción; el tipo Time y los tipos de enteros de gran tamaño, como (U)Int128/(U)Int256, se desbordan en lugar de saturarse.
DateTime32 es un alias de DateTime y admite fechas desde 1970-01-01 00:00:00 hasta 2106-02-07 06:28:15.
Al convertir desde una cadena o desde uno de los tipos numéricos saturables enumerados anteriormente, los valores fuera de este intervalo se saturan en sus límites. Los valores de coma flotante no finitos (NaN, inf, -inf) no se pueden convertir y generan una excepción.
Las conversiones desde otros tipos de fecha y hora, como Date32 o DateTime64, siguen la configuración date_time_overflow_behavior: el modo predeterminado ignore puede producir valores con desbordamiento, saturate los limita a los límites del intervalo y throw genera una excepción.
Sintaxis
toDateTime32(x[, timezone])Argumentos
x— Valor de entrada que se convertirá.String,FixedString,(U)Int*,Float*,BFloat16,Date,Date32,Time,DateTimeoDateTime64timezone— Opcional. Zona horaria del valorDateTimedevuelto.String
Valor devuelto
Devuelve el valor de entrada convertido. DateTime
Ejemplos
A partir de una cadena
SELECT toDateTime32('2025-01-01 00:00:00') AS value, toTypeName(value);┌───────────────value─┬─toTypeName(value)─┐
│ 2025-01-01 00:00:00 │ DateTime │
└─────────────────────┴───────────────────┘A partir de una marca temporal Unix
SELECT toDateTime32(1735689600, 'UTC') AS value, toTypeName(value);┌───────────────value─┬─toTypeName(value)─┐
│ 2025-01-01 00:00:00 │ DateTime('UTC') │
└─────────────────────┴───────────────────┘Con zona horaria
SELECT toDateTime32('2025-01-01 00:00:00', 'Asia/Istanbul') AS value, toTypeName(value);┌───────────────value─┬─toTypeName(value)─────────┐
│ 2025-01-01 00:00:00 │ DateTime('Asia/Istanbul') │
└─────────────────────┴───────────────────────────┘toDateTime64
Introducido en: v20.1.0
Convierte un valor de entrada en un valor del tipo DateTime64.
Sintaxis
toDateTime64(expr, scale[, timezone])Argumentos
expr— Expresión que devuelve un número o su representación en cadena.Expresiónscale— Tamaño de tick (precisión): 10^(-scale) segundos.UInt8timezone— Opcional. Zona horaria del objetoDateTime64especificado.String
Valor devuelto
Devuelve una fecha y hora del calendario, con precisión de subsegundos. DateTime64
Ejemplos
El valor está dentro del rango
SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value);┌───────────────────value─┬─toTypeName(value)─┐
│ 2025-01-01 00:00:00.000 │ DateTime64(3) │
└─────────────────────────┴───────────────────┘Como Decimal con una precisión determinada
SELECT toDateTime64(1546300800.000, 3) AS value, toTypeName(value);
-- Without the decimal point the value is still treated as Unix Timestamp in seconds
SELECT toDateTime64(1546300800000, 3) AS value, toTypeName(value);┌───────────────────value─┬─toTypeName(value)─┐
│ 2019-01-01 00:00:00.000 │ DateTime64(3) │
└─────────────────────────┴───────────────────┘
┌───────────────────value─┬─toTypeName(value)─┐
│ 9999-12-31 23:59:59.000 │ DateTime64(3) │
└─────────────────────────┴───────────────────┘Con zona horaria
SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeName(value);┌───────────────────value─┬─toTypeName(value)──────────────┐
│ 2025-01-01 00:00:00.000 │ DateTime64(3, 'Asia/Istanbul') │
└─────────────────────────┴────────────────────────────────┘toDateTime64OrDefault
Introducido en: v21.11.0
Al igual que toDateTime64, esta función convierte un valor de entrada en un valor del tipo DateTime64, pero devuelve el valor predeterminado de DateTime64 o el valor predeterminado proporcionado si recibe un argumento no válido.
Sintaxis
toDateTime64OrDefault(expr, scale[, timezone, default])Argumentos
expr— Expresión que devuelve un número o una representación en cadena de un número.Stringo(U)Int*oFloat*scale— Tamaño del tick (precisión): 10^-precisión segundos.UInt8timezone— Opcional. Zona horaria.Stringdefault— Opcional. El valor predeterminado que se devuelve si el análisis no se realiza correctamente.DateTime64
Valor devuelto
Valor de tipo DateTime64 si la conversión se realiza correctamente; de lo contrario, devuelve el valor predeterminado si se proporcionó o 1970-01-01 00:00:00.000 si no. DateTime64
Ejemplos
Conversión correcta
SELECT toDateTime64OrDefault('1976-10-18 00:00:00.30', 3)1976-10-18 00:00:00.300Conversión fallida
SELECT toDateTime64OrDefault('1976-10-18 00:00:00 30', 3, 'UTC', toDateTime64('2001-01-01 00:00:00.00',3))2001-01-01 00:00:00.000toDateTime64OrNull
Introducido en: v20.1.0
Convierte un valor de entrada en un valor de tipo DateTime64, pero devuelve NULL si recibe un argumento no válido.
Es igual que toDateTime64, pero devuelve NULL si recibe un argumento no válido.
Un argumento entero se interpreta como una marca temporal Unix en segundos enteros y devuelve NULL si está fuera del rango del tipo DateTime64.
Sintaxis
toDateTime64OrNull(x[, precision[, timezone]])Argumentos
x— Una representación en cadena de una fecha con hora y precisión de subsegundos, o una marca temporal Unix entera.Stringo(U)Int8/16/32/64precision— Opcional. La precisión de subsegundos del valor devuelto.UInt8timezone— Opcional. La zona horaria del valor devuelto.String
Valor devuelto
Devuelve un valor DateTime64 si la operación se realiza correctamente; en caso contrario, NULL. DateTime64 o NULL
Ejemplos
Ejemplo de uso
SELECT toDateTime64OrNull('2025-12-30 13:44:17.123'), toDateTime64OrNull('invalid')┌─toDateTime64OrNull('2025-12-30 13:44:17.123')─┬─toDateTime64OrNull('invalid')─┐
│ 2025-12-30 13:44:17.123 │ ᴺᵁᴸᴸ │
└───────────────────────────────────────────────┴───────────────────────────────┘toDateTime64OrZero
Introducido en: v20.1.0
Convierte un valor de entrada en un valor del tipo DateTime64, pero devuelve el límite inferior de DateTime64 si recibe un argumento no válido. Es igual que toDateTime64, pero devuelve el límite inferior de DateTime64 si recibe un argumento no válido.
Véase también:
Sintaxis
toDateTime64OrZero(x)Argumentos
x— Una representación en cadena de una fecha y hora con precisión de subsegundos.String
Valor devuelto
Devuelve un valor DateTime64 si la operación se realiza correctamente; de lo contrario, devuelve el límite inferior de DateTime64 (1970-01-01 00:00:00.000). DateTime64
Ejemplos
Ejemplo de uso
SELECT toDateTime64OrZero('2025-12-30 13:44:17.123'), toDateTime64OrZero('invalid')┌─toDateTime64OrZero('2025-12-30 13:44:17.123')─┬─toDateTime64OrZero('invalid')─┐
│ 2025-12-30 13:44:17.123 │ 1970-01-01 00:00:00.000 │
└───────────────────────────────────────────────┴───────────────────────────────┘toDateTimeOrDefault
Introducido en: v21.11.0
Como toDateTime, pero, si falla, devuelve un valor predeterminado, que es el tercer argumento (si se especifica) o, de lo contrario, el límite inferior de DateTime.
Sintaxis
toDateTimeOrDefault(expr[, timezone, default])Argumentos
expr— Expresión que devuelve un número o una representación en cadena de un número.Stringo(U)Int*oFloat*timezone— Opcional. Zona horaria.Stringdefault— Opcional. El valor predeterminado que se devuelve si el análisis falla.DateTime
Valor devuelto
Valor de tipo DateTime si la conversión se realiza correctamente; de lo contrario, devuelve el valor predeterminado si se proporciona, o 1970-01-01 00:00:00 si no. DateTime
Ejemplos
Conversión correcta
SELECT toDateTimeOrDefault('2022-12-30 13:44:17')2022-12-30 13:44:17Conversión fallida
SELECT toDateTimeOrDefault('', 'UTC', CAST('2023-01-01', 'DateTime(\'UTC\')'))2023-01-01 00:00:00toDateTimeOrNull
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo DateTime, pero devuelve NULL si recibe un argumento no válido.
Es igual que toDateTime, pero devuelve NULL si recibe un argumento no válido.
Un argumento entero se interpreta como una marca de tiempo Unix y produce NULL si está fuera del intervalo del tipo DateTime.
Sintaxis
toDateTimeOrNull(x[, timezone])Argumentos
x— Una representación en cadena de una fecha con hora, o una marca de tiempo Unix entera.Stringo(U)Int8/16/32/64timezone— Opcional. Zona horaria del valor devuelto.String
Valor devuelto
Devuelve un valor DateTime si tiene éxito; de lo contrario, NULL. DateTime o NULL
Ejemplos
Ejemplo de uso
SELECT toDateTimeOrNull('2025-12-30 13:44:17'), toDateTimeOrNull('invalid')┌─toDateTimeOrNull('2025-12-30 13:44:17')─┬─toDateTimeOrNull('invalid')─┐
│ 2025-12-30 13:44:17 │ ᴺᵁᴸᴸ │
└─────────────────────────────────────────┴─────────────────────────────┘Argumento entero con zona horaria
SELECT toDateTimeOrNull(1583851242, 'Asia/Shanghai'), toDateTimeOrNull(4294967296)┌─toDateTimeOrNull(1583851242, 'Asia/Shanghai')─┬─toDateTimeOrNull(4294967296)─┐
│ 2020-03-10 22:40:42 │ ᴺᵁᴸᴸ │
└───────────────────────────────────────────────┴──────────────────────────────┘toDateTimeOrZero
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo DateTime, pero devuelve el límite inferior de DateTime si recibe un argumento no válido. Es igual que toDateTime, pero devuelve el límite inferior de DateTime si recibe un argumento no válido.
Sintaxis
toDateTimeOrZero(x)Argumentos
x— Una representación en cadena de una fecha con hora.String
Valor devuelto
Devuelve un valor DateTime si la conversión se realiza correctamente; de lo contrario, devuelve el límite inferior de DateTime (1970-01-01 00:00:00). DateTime
Ejemplos
Ejemplo de uso
SELECT toDateTimeOrZero('2025-12-30 13:44:17'), toDateTimeOrZero('invalid')┌─toDateTimeOrZero('2025-12-30 13:44:17')─┬─toDateTimeOrZero('invalid')─┐
│ 2025-12-30 13:44:17 │ 1970-01-01 00:00:00 │
└─────────────────────────────────────────┴─────────────────────────────┘toDecimal128
Introducido en: v18.12.0
Convierte un valor de entrada en un valor del tipo Decimal(38, S) con escala S.
Lanza una excepción en caso de error.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores o representaciones en cadena del tipo Float*.
Argumentos no admitidos:
- Valores o representaciones en cadena de valores Float*
NaNeInf(sin distinguir entre mayúsculas y minúsculas). - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toDecimal128('0xc0fe', 1);.
Sintaxis
toDecimal128(expr, S)Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.ExpresiónS— Parámetro de escala entre 0 y 38, que especifica cuántos dígitos puede tener la parte fraccionaria de un número.UInt8
Valor devuelto
Devuelve un valor de tipo Decimal(38, S) Decimal128(S)
Ejemplos
Ejemplo de uso
SELECT
toDecimal128(99, 1) AS a, toTypeName(a) AS type_a,
toDecimal128(99.67, 2) AS b, toTypeName(b) AS type_b,
toDecimal128('99.67', 3) AS c, toTypeName(c) AS type_c
FORMAT VerticalRow 1:
──────
a: 99
type_a: Decimal(38, 1)
b: 99.67
type_b: Decimal(38, 2)
c: 99.67
type_c: Decimal(38, 3)toDecimal128OrDefault
Introducido en: v21.11.0
Al igual que toDecimal128, esta función convierte un valor de entrada a un valor de tipo Decimal(38, S), pero devuelve el valor predeterminado en caso de error.
Sintaxis
toDecimal128OrDefault(expr, S[, default])Argumentos
expr— Una representación en forma de String de un número.StringS— Parámetro de escala entre 0 y 38 que especifica cuántos dígitos puede tener la parte fraccionaria de un número.UInt8default— Opcional. El valor predeterminado que se devolverá si la conversión al tipo Decimal128(S) no se realiza correctamente.Decimal128(S)
Valor devuelto
Un valor de tipo Decimal(38, S) si la conversión se realiza correctamente; de lo contrario, devuelve el valor predeterminado si se proporcionó o 0 si no. Decimal128(S)
Ejemplos
Conversión exitosa
SELECT toDecimal128OrDefault(toString(1/42), 18)0.023809523809523808Conversión fallida
SELECT toDecimal128OrDefault('Inf', 0, CAST('-1', 'Decimal128(0)'))-1toDecimal128OrNull
Introducido en: v20.1.0
Convierte un valor de entrada en un valor del tipo Decimal(38, S), pero devuelve NULL en caso de error.
Como toDecimal128, pero devuelve NULL en lugar de lanzar una excepción si se producen errores de conversión.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores o representaciones en cadena del tipo Float*.
Argumentos no admitidos (devuelven NULL):
- Valores o representaciones en cadena de valores Float*
NaNeInf(sin distinguir entre mayúsculas y minúsculas). - Representaciones en cadena de valores binarios y hexadecimales.
- Valores que superan los límites de
Decimal128:(-1*10^(38 - S), 1*10^(38 - S)).
Véase también:
Sintaxis
toDecimal128OrNull(expr, S)Argumentos
expr— expresión que devuelve un número o la representación en cadena de un número.ExpresiónS— Parámetro de escala entre 0 y 38 que especifica cuántos dígitos puede tener la parte fraccionaria de un número.UInt8
Valor devuelto
Devuelve un valor Decimal(38, S) si tiene éxito; en caso contrario, NULL. Decimal128(S) o NULL
Ejemplos
Ejemplo de uso
SELECT toDecimal128OrNull('42.7', 2), toDecimal128OrNull('invalid', 2)┌─toDecimal128OrNull('42.7', 2)─┬─toDecimal128OrNull('invalid', 2)─┐
│ 42.7 │ ᴺᵁᴸᴸ │
└───────────────────────────────┴──────────────────────────────────┘toDecimal128OrZero
Introducido en: v20.1.0
Convierte un valor de entrada en un valor del tipo Decimal(38, S), pero devuelve 0 en caso de error.
Es similar a toDecimal128, pero devuelve 0 en lugar de generar una excepción cuando se producen errores de conversión.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores o representaciones en cadena del tipo Float*.
Argumentos no admitidos (devuelven 0):
- Valores o representaciones en cadena de valores Float*
NaNeInf(sin distinguir entre mayúsculas y minúsculas). - Representaciones en cadena de valores binarios y hexadecimales.
Sintaxis
toDecimal128OrZero(expr, S)Argumentos
expr— expresión que devuelve un número o la representación en cadena de un número.ExpresiónS— Parámetro de escala entre 0 y 38 que especifica cuántos dígitos puede tener la parte fraccionaria de un número.UInt8
Valor devuelto
Devuelve un valor Decimal(38, S) si la operación se realiza correctamente; en caso contrario, 0. Decimal128(S)
Ejemplos
Uso básico
SELECT toDecimal128OrZero('42.7', 2), toDecimal128OrZero('invalid', 2)┌─toDecimal128OrZero('42.7', 2)─┬─toDecimal128OrZero('invalid', 2)─┐
│ 42.7 │ 0 │
└───────────────────────────────┴──────────────────────────────────┘toDecimal256
Introducido en: v20.8.0
Convierte un valor de entrada en un valor de tipo Decimal(76, S) con escala S. Lanza una excepción en caso de error.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores o representaciones en cadena del tipo Float*.
Argumentos no admitidos:
- Valores o representaciones en cadena de valores Float*
NaNeInf(sin distinción entre mayúsculas y minúsculas). - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toDecimal256('0xc0fe', 1);.
Sintaxis
toDecimal256(expr, S)Argumentos
expr— Expresión que devuelve un número o una representación en cadena de un número.ExpresiónS— Parámetro de escala entre 0 y 76 que especifica cuántos dígitos puede tener la parte fraccionaria de un número.UInt8
Valor devuelto
Devuelve un valor de tipo Decimal(76, S). Decimal256(S)
Ejemplos
Ejemplo de uso
SELECT
toDecimal256(99, 1) AS a, toTypeName(a) AS type_a,
toDecimal256(99.67, 2) AS b, toTypeName(b) AS type_b,
toDecimal256('99.67', 3) AS c, toTypeName(c) AS type_c
FORMAT VerticalRow 1:
──────
a: 99
type_a: Decimal(76, 1)
b: 99.67
type_b: Decimal(76, 2)
c: 99.67
type_c: Decimal(76, 3)toDecimal256OrDefault
Introducido en: v21.11.0
Al igual que toDecimal256, esta función convierte un valor de entrada en un valor de tipo Decimal(76, S), pero devuelve el valor predeterminado en caso de error.
Sintaxis
toDecimal256OrDefault(expr, S[, default])Argumentos
expr— Una representación en cadena de un número.StringS— Parámetro de escala entre 0 y 76 que especifica cuántos dígitos puede tener la parte fraccionaria de un número.UInt8default— Opcional. El valor predeterminado que se devolverá si no se puede convertir al tipo Decimal256(S).Decimal256(S)
Valor devuelto
Un valor de tipo Decimal(76, S) si la conversión se realiza correctamente; de lo contrario, devuelve el valor predeterminado si se proporcionó, o 0 si no. Decimal256(S)
Ejemplos
Conversión exitosa
SELECT toDecimal256OrDefault(toString(1/42), 76)0.023809523809523808Error de conversión
SELECT toDecimal256OrDefault('Inf', 0, CAST('-1', 'Decimal256(0)'))-1toDecimal256OrNull
Introducido en: v20.8.0
Convierte un valor de entrada a un valor de tipo Decimal(76, S), pero devuelve NULL en caso de error.
Es como toDecimal256, pero devuelve NULL en lugar de generar una excepción cuando se producen errores de conversión.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores o representaciones en cadena del tipo Float*.
Argumentos no admitidos (devuelven NULL):
- Valores o representaciones en cadena de valores Float*
NaNeInf(sin distinguir entre mayúsculas y minúsculas). - Representaciones en cadena de valores binarios y hexadecimales.
- Valores que superan los límites de
Decimal256:(-1 * 10^(76 - S), 1 * 10^(76 - S)).
Véase también:
Sintaxis
toDecimal256OrNull(expr, S)Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.ExpressionS— Parámetro de escala entre 0 y 76 que especifica cuántos dígitos puede tener la parte fraccionaria de un número.UInt8
Valor devuelto
Devuelve un valor Decimal(76, S) si la conversión se realiza correctamente; en caso contrario, NULL. Decimal256(S) o NULL
Ejemplos
Ejemplo de uso
SELECT toDecimal256OrNull('42.7', 2), toDecimal256OrNull('invalid', 2)┌─toDecimal256OrNull('42.7', 2)─┬─toDecimal256OrNull('invalid', 2)─┐
│ 42.7 │ ᴺᵁᴸᴸ │
└───────────────────────────────┴──────────────────────────────────┘toDecimal256OrZero
Introducido en: v20.8.0
Convierte un valor de entrada en un valor de tipo Decimal(76, S), pero devuelve 0 en caso de error.
Es similar a toDecimal256, pero devuelve 0 en lugar de generar una excepción cuando se producen errores de conversión.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores o representaciones en cadena del tipo Float*.
Argumentos no admitidos (devuelven 0):
- Valores o representaciones en cadena de valores Float*
NaNeInf(sin distinguir mayúsculas de minúsculas). - Representaciones en cadena de valores binarios y hexadecimales.
Véase también:
Sintaxis
toDecimal256OrZero(expr, S)Argumentos
expr— expresión que devuelve un número o la representación en cadena de un número.ExpresiónS— Parámetro de escala entre 0 y 76 que especifica cuántos dígitos puede tener la parte fraccionaria de un número.UInt8
Valor devuelto
Devuelve un valor Decimal(76, S) si la operación se realiza correctamente; en caso contrario, 0. Decimal256(S)
Ejemplos
Ejemplo de uso
SELECT toDecimal256OrZero('42.7', 2), toDecimal256OrZero('invalid', 2)┌─toDecimal256OrZero('42.7', 2)─┬─toDecimal256OrZero('invalid', 2)─┐
│ 42.7 │ 0 │
└───────────────────────────────┴──────────────────────────────────┘toDecimal32
Introducido en: v18.12.0
Convierte un valor de entrada en un valor de tipo Decimal(9, S) con una escala de S. Lanza una excepción en caso de error.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores o representaciones en cadena del tipo Float*.
Argumentos no admitidos:
- Valores o representaciones en cadena de valores Float*
NaNeInf(sin distinguir entre mayúsculas y minúsculas). - Representaciones en cadena de valores binarios y hexadecimales, por ejemplo,
SELECT toDecimal32('0xc0fe', 1);.
Sintaxis
toDecimal32(expr, S)Argumentos
expr— Expresión que devuelve un número o una representación en cadena de un número.ExpresiónS— Parámetro de escala entre 0 y 9 que especifica cuántos dígitos puede tener la parte fraccionaria de un número.UInt8
Valor devuelto
Devuelve un valor de tipo Decimal(9, S) Decimal32(S)
Ejemplos
Ejemplo de uso
SELECT
toDecimal32(2, 1) AS a, toTypeName(a) AS type_a,
toDecimal32(4.2, 2) AS b, toTypeName(b) AS type_b,
toDecimal32('4.2', 3) AS c, toTypeName(c) AS type_c
FORMAT VerticalRow 1:
──────
a: 2
type_a: Decimal(9, 1)
b: 4.2
type_b: Decimal(9, 2)
c: 4.2
type_c: Decimal(9, 3)toDecimal32OrDefault
Introducido en: v21.11.0
Al igual que toDecimal32, esta función convierte un valor de entrada en un valor del tipo Decimal(9, S), pero devuelve el valor predeterminado en caso de error.
Sintaxis
toDecimal32OrDefault(expr, S[, default])Argumentos
expr— Una representación enStringde un número.StringS— Parámetro de escala entre 0 y 9 que especifica cuántos dígitos puede tener la parte fraccionaria de un número.UInt8default— Opcional. El valor predeterminado que se devuelve si no es posible interpretar el valor como el tipo Decimal32(S).Decimal32(S)
Valor devuelto
Un valor de tipo Decimal(9, S) si la conversión se realiza correctamente; en caso contrario, devuelve el valor predeterminado si se proporcionó o 0 si no. Decimal32(S)
Ejemplos
Conversión correcta
SELECT toDecimal32OrDefault(toString(0.0001), 5)0.0001Error de conversión
SELECT toDecimal32OrDefault('Inf', 0, CAST('-1', 'Decimal32(0)'))-1toDecimal32OrNull
Introducido en: v20.1.0
Convierte un valor de entrada en un valor de tipo Decimal(9, S), pero devuelve NULL en caso de error.
Es similar a toDecimal32, pero devuelve NULL en lugar de lanzar una excepción en caso de errores de conversión.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores o representaciones en cadena del tipo Float*.
Argumentos no admitidos (devuelven NULL):
- Valores o representaciones en cadena de valores Float*
NaNeInf(sin distinción entre mayúsculas y minúsculas). - Representaciones en cadena de valores binarios y hexadecimales.
- Valores que superan los límites de
Decimal32:(-1*10^(9 - S), 1*10^(9 - S)).
Véase también:
Sintaxis
toDecimal32OrNull(expr, S)Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.ExpressionS— Parámetro de escala entre 0 y 9 que especifica cuántos dígitos puede tener la parte fraccionaria de un número.UInt8
Valor devuelto
Devuelve un valor Decimal(9, S) si la operación se realiza correctamente; en caso contrario, NULL. Decimal32(S) o NULL
Ejemplos
Ejemplo de uso
SELECT toDecimal32OrNull('42.7', 2), toDecimal32OrNull('invalid', 2)┌─toDecimal32OrNull('42.7', 2)─┬─toDecimal32OrNull('invalid', 2)─┐
│ 42.7 │ ᴺᵁᴸᴸ │
└──────────────────────────────┴─────────────────────────────────┘toDecimal32OrZero
Introducido en: v20.1.0
Convierte un valor de entrada en un valor del tipo Decimal(9, S), pero devuelve 0 en caso de error.
Es como toDecimal32, pero devuelve 0 en lugar de lanzar una excepción cuando se producen errores de conversión.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores o representaciones en cadena del tipo Float*.
Argumentos no admitidos (devuelven 0):
- Valores o representaciones en cadena de valores Float*
NaNeInf(sin distinción entre mayúsculas y minúsculas). - Representaciones en cadena de valores binarios y hexadecimales.
Sintaxis
toDecimal32OrZero(expr, S)Argumentos
expr— Expresión que devuelve un número o la representación en cadena.ExpressionS— Parámetro de escala entre 0 y 9 que especifica cuántos dígitos puede tener la parte fraccionaria de un número.UInt8
Valor devuelto
Devuelve un valor Decimal(9, S) si tiene éxito; de lo contrario, 0. Decimal32(S)
Ejemplos
Ejemplo de uso
SELECT toDecimal32OrZero('42.7', 2), toDecimal32OrZero('invalid', 2)┌─toDecimal32OrZero('42.7', 2)─┬─toDecimal32OrZero('invalid', 2)─┐
│ 42.7 │ 0 │
└──────────────────────────────┴─────────────────────────────────┘toDecimal64
Introducido en: v18.12.0
Convierte un valor de entrada en un valor de tipo Decimal(18, S) con una escala de S.
Lanza una excepción en caso de error.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores o representaciones en cadena del tipo Float*.
Argumentos no admitidos:
- Valores o representaciones en cadena de valores Float*
NaNeInf(sin distinción entre mayúsculas y minúsculas). - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toDecimal64('0xc0fe', 1);.
Sintaxis
toDecimal64(expr, S)Argumentos
expr— Expresión que devuelve un número o la representación en cadena.ExpressionS— Parámetro de escala entre 0 y 18 que especifica cuántos dígitos puede tener la parte fraccionaria de un número.UInt8
Valor devuelto
Devuelve un valor decimal. Decimal(18, S)
Ejemplos
Ejemplo de uso
SELECT
toDecimal64(2, 1) AS a, toTypeName(a) AS type_a,
toDecimal64(4.2, 2) AS b, toTypeName(b) AS type_b,
toDecimal64('4.2', 3) AS c, toTypeName(c) AS type_c
FORMAT VerticalRow 1:
──────
a: 2
type_a: Decimal(18, 1)
b: 4.2
type_b: Decimal(18, 2)
c: 4.2
type_c: Decimal(18, 3)toDecimal64OrDefault
Introducido en: v21.11.0
Al igual que toDecimal64, esta función convierte un valor de entrada a un valor del tipo Decimal(18, S), pero devuelve el valor predeterminado en caso de error.
Sintaxis
toDecimal64OrDefault(expr, S[, default])Argumentos
expr— Una representación enStringde un número.StringS— Parámetro de escala entre 0 y 18 que especifica cuántos dígitos puede tener la parte fraccionaria de un número.UInt8default— Opcional. El valor predeterminado que se devuelve si no se puede convertir al tipo Decimal64(S).Decimal64(S)
Valor devuelto
Un valor de tipo Decimal(18, S) si la conversión se realiza correctamente; de lo contrario, devuelve el valor predeterminado si se proporcionó, o 0 si no. Decimal64(S)
Ejemplos
Conversión correcta
SELECT toDecimal64OrDefault(toString(0.0001), 18)0.0001Conversión fallida
SELECT toDecimal64OrDefault('Inf', 0, CAST('-1', 'Decimal64(0)'))-1toDecimal64OrNull
Introducido en: v20.1.0
Convierte un valor de entrada en un valor de tipo Decimal(18, S), pero devuelve NULL en caso de error.
Igual que toDecimal64, pero devuelve NULL en lugar de lanzar una excepción cuando se producen errores de conversión.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores o representaciones en cadena del tipo Float*.
Argumentos no admitidos (devuelven NULL):
- Valores o representaciones en cadena de valores Float*
NaNeInf(sin distinción entre mayúsculas y minúsculas). - Representaciones en cadena de valores binarios y hexadecimales.
- Valores que superan los límites de
Decimal64:(-1*10^(18 - S), 1*10^(18 - S)).
Véase también:
Sintaxis
toDecimal64OrNull(expr, S)Argumentos
expr— Expresión que devuelve un número o una representación en cadena de un número.ExpressionS— Parámetro de escala entre 0 y 18 que especifica cuántos dígitos puede tener la parte fraccionaria de un número.UInt8
Valor devuelto
Devuelve un valor Decimal(18, S) si la operación se realiza correctamente; de lo contrario, NULL. Decimal64(S) o NULL
Ejemplos
Ejemplo de uso
SELECT toDecimal64OrNull('42.7', 2), toDecimal64OrNull('invalid', 2)┌─toDecimal64OrNull('42.7', 2)─┬─toDecimal64OrNull('invalid', 2)─┐
│ 42.7 │ ᴺᵁᴸᴸ │
└──────────────────────────────┴─────────────────────────────────┘toDecimal64OrZero
Introducido en: v20.1.0
Convierte un valor de entrada en un valor de tipo Decimal(18, S), pero devuelve 0 en caso de error.
Igual que toDecimal64, pero devuelve 0 en lugar de lanzar una excepción si se producen errores de conversión.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores o representaciones en cadena del tipo Float*.
Argumentos no admitidos (devuelven 0):
- Valores o representaciones en cadena de valores Float*
NaNeInf(sin distinción entre mayúsculas y minúsculas). - Representaciones en cadena de valores binarios y hexadecimales.
Véase también:
Sintaxis
toDecimal64OrZero(expr, S)Argumentos
expr— Expresión que devuelve un número o su representación en cadena.ExpressionS— Parámetro de escala entre 0 y 18 que especifica cuántos dígitos puede tener la parte fraccionaria de un número.UInt8
Valor devuelto
Devuelve un valor Decimal(18, S) si la operación se realiza correctamente; de lo contrario, 0. Decimal64(S)
Ejemplos
Ejemplo de uso
SELECT toDecimal64OrZero('42.7', 2), toDecimal64OrZero('invalid', 2)┌─toDecimal64OrZero('42.7', 2)─┬─toDecimal64OrZero('invalid', 2)─┐
│ 42.7 │ 0 │
└──────────────────────────────┴─────────────────────────────────┘toDecimalString
Introducido en: v23.3.0
Convierte un valor numérico a String con el número especificado de dígitos fraccionarios.
La función redondea el valor de entrada al número especificado de posiciones decimales. Si el valor de entrada tiene menos dígitos fraccionarios de los solicitados, el resultado se rellena con ceros hasta alcanzar el número exacto de dígitos fraccionarios especificado.
Sintaxis
toDecimalString(number, scale)Argumentos
number— El valor numérico que se convertirá en una cadena. Puede ser cualquier tipo numérico (Int, UInt, Float, Decimal).Int8oInt16oInt32oInt64oUInt8oUInt16oUInt32oUInt64oFloat32oFloat64oDecimalscale— El número de dígitos que se mostrarán en la parte fraccionaria. El resultado se redondeará si es necesario.UInt8
Valor devuelto
Devuelve una representación del número en String con exactamente el número especificado de dígitos fraccionarios. String
Ejemplos
Redondear y dar formato a un número
SELECT toDecimalString(2.1456, 2)┌─toDecimalString(2.1456, 2)─┐
│ 2.15 │
└────────────────────────────┘Completar con ceros
SELECT toDecimalString(5, 3)┌─toDecimalString(5, 3)─┐
│ 5.000 │
└───────────────────────┘Distintos tipos numéricos
SELECT toDecimalString(CAST(123.456 AS Decimal(10,3)), 2) AS decimal_val,
toDecimalString(CAST(42.7 AS Float32), 4) AS float_val┌─decimal_val─┬─float_val─┐
│ 123.46 │ 42.7000 │
└─────────────┴───────────┘toFixedString
Introducido en: v1.1.0
Convierte un argumento String en un tipo FixedString(N) (una cadena de longitud fija N).
Si la cadena tiene menos bytes que N, se rellena con bytes nulos a la derecha. Si la cadena tiene más bytes que N, se lanza una excepción.
Sintaxis
toFixedString(s, N)Argumentos
s— Cadena que se va a convertir.StringN— Longitud del FixedString resultante.const UInt*
Valor devuelto
Devuelve un FixedString de longitud N. FixedString(N)
Ejemplos
Ejemplo de uso
-- The padding is made of null bytes, so the result is shown with `hex`.
SELECT hex(toFixedString('foo', 8)) AS s;┌─s────────────────┐
│ 666F6F0000000000 │
└──────────────────┘toFloat32
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo Float32. Lanza una excepción en caso de error.
Argumentos admitidos:
- Valores de tipo (U)Int*.
- Representaciones de cadena de (U)Int8/16/32/128/256.
- Valores de tipo Float*, incluidos
NaNeInf. - Representaciones de cadena de Float*, incluidos
NaNeInf(sin distinción entre mayúsculas y minúsculas).
Argumentos no admitidos:
- Representaciones de cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toFloat32('0xc0fe');.
Véase también:
Sintaxis
toFloat32(expr)Argumentos
expr— Expresión que devuelve un número o una representación en cadena de un número.Expression
Valor devuelto
Devuelve un valor de punto flotante de 32 bits. Float32
Ejemplos
Ejemplo de uso
SELECT
toFloat32(42.7),
toFloat32('42.7'),
toFloat32('NaN')
FORMAT VerticalRow 1:
──────
toFloat32(42.7): 42.7
toFloat32('42.7'): 42.7
toFloat32('NaN'): nantoFloat32OrDefault
Introducido en: v21.11.0
Al igual que toFloat32, esta función convierte un valor de entrada en un valor de tipo Float32, pero devuelve el valor predeterminado en caso de error.
Si no se pasa ningún valor default, se devuelve 0 en caso de error.
Sintaxis
toFloat32OrDefault(expr[, default])Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Stringo(U)Int*oFloat*default— Opcional. El valor predeterminado que se devolverá si el análisis falla.Float32
Valor devuelto
Devuelve un valor de tipo Float32 si la conversión se realiza correctamente; de lo contrario, devuelve el valor predeterminado si se proporcionó, o 0 si no. Float32
Ejemplos
Conversión correcta
SELECT toFloat32OrDefault('8', CAST('0', 'Float32'))8Conversión fallida
SELECT toFloat32OrDefault('abc', CAST('0', 'Float32'))0toFloat32OrNull
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo Float32, pero devuelve NULL en caso de error.
Como toFloat32, pero devuelve NULL en lugar de lanzar una excepción si se produce un error de conversión.
Argumentos admitidos:
- Valores de tipo (U)Int*.
- Representaciones en cadena de (U)Int8/16/32/128/256.
- Valores de tipo Float*, incluidos
NaNeInf. - Representaciones en cadena de Float*, incluidos
NaNeInf(sin distinción entre mayúsculas y minúsculas).
Argumentos no admitidos (devuelven NULL):
- Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toFloat32OrNull('0xc0fe');. - Formatos de cadena no válidos.
Véase también:
Sintaxis
toFloat32OrNull(x)Argumentos
x— Una representación en cadena de un número.String
Valor devuelto
Devuelve un valor de coma flotante de 32 bits si la operación se realiza correctamente; de lo contrario, NULL. Float32 o NULL
Ejemplos
Ejemplo de uso
SELECT
toFloat32OrNull('42.7'),
toFloat32OrNull('NaN'),
toFloat32OrNull('abc')
FORMAT VerticalRow 1:
──────
toFloat32OrNull('42.7'): 42.7
toFloat32OrNull('NaN'): nan
toFloat32OrNull('abc'): ᴺᵁᴸᴸtoFloat32OrZero
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo Float32, pero devuelve 0 en caso de error.
Es como toFloat32, pero devuelve 0 en lugar de lanzar una excepción cuando se producen errores de conversión.
Véase también:
Sintaxis
toFloat32OrZero(x)Argumentos
x— Una representación en cadena de un número.String
Valor devuelto
Devuelve un valor de coma flotante de 32 bits si la operación se realiza correctamente; en caso contrario, 0. Float32
Ejemplos
Ejemplo de uso
SELECT
toFloat32OrZero('42.7'),
toFloat32OrZero('abc')
FORMAT VerticalRow 1:
──────
toFloat32OrZero('42.7'): 42.7
toFloat32OrZero('abc'): 0toFloat64
Introducido en: v1.1.0
Convierte un valor de entrada en un valor del tipo Float64.
Lanza una excepción en caso de error.
Argumentos admitidos:
- Valores de tipo (U)Int*.
- Representaciones de cadena de (U)Int8/16/32/128/256.
- Valores de tipo Float*, incluidos
NaNeInf. - Representaciones de cadena del tipo Float*, incluidos
NaNeInf(sin distinguir entre mayúsculas y minúsculas).
Argumentos no admitidos:
- Representaciones de cadena de valores binarios y hexadecimales, por ejemplo,
SELECT toFloat64('0xc0fe');.
Véase también:
Sintaxis
toFloat64(expr)Argumentos
expr— Expresión que devuelve un número o su representación en cadena.Expresión
Valor devuelto
Devuelve un valor de punto flotante de 64 bits. Float64
Ejemplos
Ejemplo de uso
SELECT
toFloat64(42.7),
toFloat64('42.7'),
toFloat64('NaN')
FORMAT VerticalRow 1:
──────
toFloat64(42.7): 42.7
toFloat64('42.7'): 42.7
toFloat64('NaN'): nantoFloat64OrDefault
Introducido en: v21.11.0
Al igual que toFloat64, esta función convierte un valor de entrada en un valor de tipo Float64, pero devuelve el valor por defecto en caso de error.
Si no se proporciona ningún valor default, se devuelve 0 en caso de error.
Sintaxis
toFloat64OrDefault(expr[, default])Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Stringo(U)Int*oFloat*default— Opcional. El valor predeterminado que se devuelve si el análisis no se realiza correctamente.Float64
Valor devuelto
Devuelve un valor de tipo Float64 si la operación se realiza correctamente; de lo contrario, devuelve el valor predeterminado si se proporciona, o 0 en caso contrario. Float64
Ejemplos
Conversión correcta
SELECT toFloat64OrDefault('8', CAST('0', 'Float64'))8Error de conversión
SELECT toFloat64OrDefault('abc', CAST('0', 'Float64'))0toFloat64OrNull
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo Float64, pero devuelve NULL en caso de error.
Como toFloat64, pero devuelve NULL en lugar de lanzar una excepción si se producen errores de conversión.
Argumentos admitidos:
- Valores de tipo (U)Int*.
- Representaciones de cadena de (U)Int8/16/32/128/256.
- Valores de tipo Float*, incluidos
NaNeInf. - Representaciones de cadena del tipo Float*, incluidos
NaNeInf(sin distinguir entre mayúsculas y minúsculas).
Argumentos no admitidos (devuelven NULL):
- Representaciones de cadena de valores binarios y hexadecimales, p. ej.,
SELECT toFloat64OrNull('0xc0fe');. - Formatos de cadena no válidos.
Véase también:
Sintaxis
toFloat64OrNull(x)Argumentos
x— La representación en cadena de un número.String
Valor devuelto
Devuelve un valor de coma flotante de 64 bits si la conversión se realiza correctamente; en caso contrario, NULL. Float64 o NULL
Ejemplos
Ejemplo de uso
SELECT
toFloat64OrNull('42.7'),
toFloat64OrNull('NaN'),
toFloat64OrNull('abc')
FORMAT VerticalRow 1:
──────
toFloat64OrNull('42.7'): 42.7
toFloat64OrNull('NaN'): nan
toFloat64OrNull('abc'): ᴺᵁᴸᴸtoFloat64OrZero
Introducido en: v1.1.0
Convierte un valor de entrada a un valor de tipo Float64, pero devuelve 0 en caso de error.
Al igual que toFloat64, pero devuelve 0 en lugar de lanzar una excepción si se producen errores de conversión.
Vea también:
Sintaxis
toFloat64OrZero(x)Argumentos
x— La representación textual de un número.String
Valor devuelto
Devuelve un valor de coma flotante de 64 bits si la operación se realiza correctamente; en caso contrario, 0. Float64
Ejemplos
Ejemplo de uso
SELECT
toFloat64OrZero('42.7'),
toFloat64OrZero('abc')
FORMAT VerticalRow 1:
──────
toFloat64OrZero('42.7'): 42.7
toFloat64OrZero('abc'): 0toInt128
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo Int128. Lanza una excepción si se produce un error. La función redondea hacia cero; es decir, trunca los dígitos fraccionarios de los números.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores del tipo Float*.
Argumentos no admitidos:
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toInt128('0xc0fe');.
Véase también:
Sintaxis
toInt128(expr)Argumentos
expr— expresión que devuelve un número o la representación en cadena de un número.Expresión
Valor devuelto
Devuelve un valor entero de 128 bits. Int128
Ejemplos
Ejemplo de uso
SELECT
toInt128(-128),
toInt128(-128.8),
toInt128('-128')
FORMAT VerticalRow 1:
──────
toInt128(-128): -128
toInt128(-128.8): -128
toInt128('-128'): -128toInt128OrDefault
Introducido en: v21.11.0
Al igual que toInt128, esta función convierte un valor de entrada en un valor de tipo Int128, pero devuelve el valor predeterminado si se produce un error.
Si no se proporciona ningún valor default, se devuelve 0 en caso de error.
Sintaxis
toInt128OrDefault(expr[, default])Argumentos
expr— Expresión que devuelve un número o una representación en cadena de un número.Stringo(U)Int*oFloat*default— Opcional. El valor predeterminado que se devuelve si el análisis falla.Int128
Valor devuelto
Devuelve un valor de tipo Int128 si la operación se realiza correctamente; de lo contrario, devuelve el valor predeterminado si se proporciona, o 0 si no. Int128
Ejemplos
Conversión correcta
SELECT toInt128OrDefault('-128', CAST('-1', 'Int128'))-128Conversión fallida
SELECT toInt128OrDefault('abc', CAST('-1', 'Int128'))-1toInt128OrNull
Introducido en: v20.8.0
Al igual que toInt128, esta función convierte un valor de entrada en un valor de tipo Int128, pero devuelve NULL en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int*.
Argumentos no admitidos (devuelven NULL):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toInt128OrNull('0xc0fe');.
Véase también:
Sintaxis
toInt128OrNull(x)Argumentos
x— Una representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo Int128, o NULL si la conversión no se realiza correctamente. Int128 o NULL
Ejemplos
Ejemplo de uso
SELECT
toInt128OrNull('-128'),
toInt128OrNull('abc')
FORMAT VerticalRow 1:
──────
toInt128OrNull('-128'): -128
toInt128OrNull('abc'): ᴺᵁᴸᴸtoInt128OrZero
Introducido en: v20.8.0
Convierte un valor de entrada al tipo Int128, pero devuelve 0 en caso de error.
Es como toInt128, pero devuelve 0 en lugar de lanzar una excepción.
Véase también:
Sintaxis
toInt128OrZero(x)Argumentos
x— Valor de entrada que se va a convertir.StringoFixedStringoFloat*oDecimalo(U)Int*oDateoDateTime
Valor devuelto
Devuelve el valor de entrada convertido o 0 si la conversión falla. Int128
Ejemplos
Ejemplo de uso
SELECT toInt128OrZero('123')123Si la conversión falla, devuelve cero
SELECT toInt128OrZero('abc')0toInt16
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo Int16.
Lanza una excepción en caso de error.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores del tipo Float*.
Argumentos no admitidos:
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toInt16('0xc0fe');.
Véase también:
Sintaxis
toInt16(expr)Argumentos
expr— expresión que devuelve un número o la representación en cadena de un número.expresión
Valor devuelto
Devuelve un valor entero de 16 bits. Int16
Ejemplos
Ejemplo de uso
SELECT
toInt16(-16),
toInt16(-16.16),
toInt16('-16')
FORMAT VerticalRow 1:
──────
toInt16(-16): -16
toInt16(-16.16): -16
toInt16('-16'): -16toInt16OrDefault
Introducido en: v21.11.0
Al igual que toInt16, esta función convierte un valor de entrada en un valor de tipo Int16, pero devuelve el valor por defecto en caso de error.
Si no se pasa ningún valor default, se devuelve 0 en caso de error.
Sintaxis
toInt16OrDefault(expr[, default])Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Stringo(U)Int*oFloat*default— Opcional. El valor predeterminado que se devuelve si el análisis no se realiza correctamente.Int16
Valor devuelto
Devuelve un valor de tipo Int16 si la operación se realiza correctamente; de lo contrario, devuelve el valor predeterminado, si se proporciona, o 0 si no. Int16
Ejemplos
Conversión correcta
SELECT toInt16OrDefault('-16', CAST('-1', 'Int16'))-16Conversión fallida
SELECT toInt16OrDefault('abc', CAST('-1', 'Int16'))-1toInt16OrNull
Introducido en: v1.1.0
Al igual que toInt16, esta función convierte un valor de entrada en un valor de tipo Int16, pero devuelve NULL en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int*.
Argumentos no admitidos (devuelven NULL):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toInt16OrNull('0xc0fe');.
Véase también:
Sintaxis
toInt16OrNull(x)Argumentos
x— Una representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo Int16 o NULL si la conversión no se realiza correctamente. Int16 o NULL
Ejemplos
Ejemplo de uso
SELECT
toInt16OrNull('-16'),
toInt16OrNull('abc')
FORMAT VerticalRow 1:
──────
toInt16OrNull('-16'): -16
toInt16OrNull('abc'): ᴺᵁᴸᴸtoInt16OrZero
Introducido en: v1.1.0
Al igual que toInt16, esta función convierte un valor de entrada en un valor del tipo Int16, pero devuelve 0 en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int*.
Argumentos no admitidos (devuelven 0):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales, por ejemplo,
SELECT toInt16OrZero('0xc0fe');.
Véase también:
Sintaxis
toInt16OrZero(x)Argumentos
x— Una representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo Int16 o 0 si la conversión no se realiza correctamente. Int16
Ejemplos
Ejemplo de uso
SELECT
toInt16OrZero('16'),
toInt16OrZero('abc')
FORMAT VerticalRow 1:
──────
toInt16OrZero('16'): 16
toInt16OrZero('abc'): 0toInt256
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo Int256. Lanza una excepción en caso de error. La función usa redondeo hacia cero, es decir, trunca los dígitos fraccionarios de los números.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores de tipo Float*.
Argumentos no admitidos:
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales, por ejemplo,
SELECT toInt256('0xc0fe');.
Véase también:
Sintaxis
toInt256(expr)Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Expresión
Valor devuelto
Devuelve un valor entero de 256 bits. Int256
Ejemplos
Ejemplo de uso
SELECT
toInt256(-256),
toInt256(-256.256),
toInt256('-256')
FORMAT VerticalRow 1:
──────
toInt256(-256): -256
toInt256(-256.256): -256
toInt256('-256'): -256toInt256OrDefault
Introducido en: v21.11.0
Al igual que toInt256, esta función convierte un valor de entrada en un valor de tipo Int256, pero devuelve el valor predeterminado en caso de producirse un error.
Si no se proporciona ningún valor default, se devuelve 0 en caso de error.
Sintaxis
toInt256OrDefault(expr[, default])Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Stringo(U)Int*oFloat*default— Opcional. El valor predeterminado que se devuelve si el análisis no se realiza correctamente.Int256
Valor devuelto
Devuelve un valor de tipo Int256 si la conversión se realiza correctamente; de lo contrario, devuelve el valor predeterminado si se proporciona, o 0 si no. Int256
Ejemplos
Conversión correcta
SELECT toInt256OrDefault('-256', CAST('-1', 'Int256'))-256Conversión fallida
SELECT toInt256OrDefault('abc', CAST('-1', 'Int256'))-1toInt256OrNull
Introducido en: v20.8.0
Al igual que toInt256, esta función convierte un valor de entrada en un valor de tipo Int256, pero devuelve NULL en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int*.
Argumentos no admitidos (devuelven NULL):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toInt256OrNull('0xc0fe');.
Véase también:
Sintaxis
toInt256OrNull(x)Argumentos
x— La representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo Int256 o NULL si la conversión no se realiza correctamente. Int256 o NULL
Ejemplos
Ejemplo de uso
SELECT
toInt256OrNull('-256'),
toInt256OrNull('abc')
FORMAT VerticalRow 1:
──────
toInt256OrNull('-256'): -256
toInt256OrNull('abc'): ᴺᵁᴸᴸtoInt256OrZero
Introducido en: v20.8.0
Convierte un valor de entrada al tipo Int256, pero devuelve 0 en caso de error.
Igual que toInt256, pero devuelve 0 en lugar de generar una excepción.
Véase también:
Sintaxis
toInt256OrZero(x)Argumentos
x— Valor de entrada que se va a convertir.StringoFixedStringoFloat*oDecimalo(U)Int*oDateoDateTime
Valor devuelto
Devuelve el valor de entrada convertido o 0 si la conversión falla. Int256
Ejemplos
Ejemplo de uso
SELECT toInt256OrZero('123')123Si falla la conversión, devuelve cero
SELECT toInt256OrZero('abc')0toInt32
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo Int32.
Lanza una excepción en caso de error.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores del tipo Float*.
Argumentos no admitidos:
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales, por ejemplo,
SELECT toInt32('0xc0fe');.
Véase también:
Sintaxis
toInt32(expr)Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Expresión
Valor devuelto
Devuelve un valor entero de 32 bits. Int32
Ejemplos
Ejemplo de uso
SELECT
toInt32(-32),
toInt32(-32.32),
toInt32('-32')
FORMAT VerticalRow 1:
──────
toInt32(-32): -32
toInt32(-32.32): -32
toInt32('-32'): -32toInt32OrDefault
Introducido en: v21.11.0
Al igual que toInt32, esta función convierte un valor de entrada en un valor de tipo Int32, pero devuelve el valor predeterminado en caso de error.
Si no se pasa ningún valor default, se devuelve 0 en caso de error.
Sintaxis
toInt32OrDefault(expr[, default])Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Stringo(U)Int*oFloat*default— Opcional. El valor predeterminado que se devuelve si el análisis no es correcto.Int32
Valor devuelto
Devuelve un valor de tipo Int32 si la conversión se realiza correctamente; de lo contrario, devuelve el valor predeterminado si se proporciona, o 0 en caso contrario. Int32
Ejemplos
Conversión correcta
SELECT toInt32OrDefault('-32', CAST('-1', 'Int32'))-32Error de conversión
SELECT toInt32OrDefault('abc', CAST('-1', 'Int32'))-1toInt32OrNull
Introducido en: v1.1.0
Al igual que toInt32, esta función convierte un valor de entrada en un valor de tipo Int32, pero devuelve NULL en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int*.
Argumentos no admitidos (devuelven NULL):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toInt32OrNull('0xc0fe');.
Véase también:
Sintaxis
toInt32OrNull(x)Argumentos
x— Una representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo Int32 o NULL si la conversión no se realiza correctamente. Int32 o NULL
Ejemplos
Ejemplo de uso
SELECT
toInt32OrNull('-32'),
toInt32OrNull('abc')
FORMAT VerticalRow 1:
──────
toInt32OrNull('-32'): -32
toInt32OrNull('abc'): ᴺᵁᴸᴸtoInt32OrZero
Introducido en: v1.1.0
Al igual que toInt32, esta función convierte un valor de entrada en un valor de tipo Int32, pero devuelve 0 en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int*.
Argumentos no admitidos (devuelven 0):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toInt32OrZero('0xc0fe');.
Véase también:
Sintaxis
toInt32OrZero(x)Argumentos
x— Una representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo Int32 o 0 si la conversión no se realiza correctamente. Int32
Ejemplos
Ejemplo de uso
SELECT
toInt32OrZero('32'),
toInt32OrZero('abc')
FORMAT VerticalRow 1:
──────
toInt32OrZero('32'): 32
toInt32OrZero('abc'): 0toInt64
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo Int64.
Lanza una excepción si se produce un error.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores del tipo Float*.
Argumentos no admitidos:
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales, por ejemplo,
SELECT toInt64('0xc0fe');.
Véase también:
Sintaxis
toInt64(expr)Argumentos
expr— Expresión que devuelve un número o su representación en cadena. Admitido: valores o representaciones en cadena del tipo (U)Int*, valores del tipo Float*. No admitido: representaciones en cadena de valores Float*, incluidos NaN e Inf, y representaciones en cadena de valores binarios y hexadecimales.Expresión
Valor devuelto
Devuelve un valor entero de 64 bits. Int64
Ejemplos
Ejemplo de uso
SELECT
toInt64(-64),
toInt64(-64.64),
toInt64('-64')
FORMAT VerticalRow 1:
──────
toInt64(-64): -64
toInt64(-64.64): -64
toInt64('-64'): -64toInt64OrDefault
Introducido en: v21.11.0
Al igual que toInt64, esta función convierte un valor de entrada a un valor de tipo Int64, pero devuelve el valor predeterminado en caso de error.
Si no se pasa ningún valor default, se devuelve 0 en caso de error.
Sintaxis
toInt64OrDefault(expr[, default])Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Stringo(U)Int*oFloat*default— Opcional. El valor predeterminado que se devuelve si no se puede analizar.Int64
Valor devuelto
Devuelve un valor de tipo Int64 si la conversión se realiza correctamente; de lo contrario, devuelve el valor predeterminado, si se proporciona, o 0 en caso contrario. Int64
Ejemplos
Conversión correcta
SELECT toInt64OrDefault('-64', CAST('-1', 'Int64'))-64Conversión fallida
SELECT toInt64OrDefault('abc', CAST('-1', 'Int64'))-1toInt64OrNull
Introducido en: v1.1.0
Al igual que toInt64, esta función convierte un valor de entrada en un valor de tipo Int64, pero devuelve NULL en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int*.
Argumentos no admitidos (devuelven NULL):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales, por ejemplo,
SELECT toInt64OrNull('0xc0fe');.
Véase también:
Sintaxis
toInt64OrNull(x)Argumentos
x— La representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo Int64; en caso contrario, NULL si la conversión no se realiza correctamente. Int64 o NULL
Ejemplos
Ejemplo de uso
SELECT
toInt64OrNull('-64'),
toInt64OrNull('abc')
FORMAT VerticalRow 1:
──────
toInt64OrNull('-64'): -64
toInt64OrNull('abc'): ᴺᵁᴸᴸtoInt64OrZero
Introducido en: v1.1.0
Convierte un valor de entrada al tipo Int64, pero devuelve 0 si se produce un error.
Igual que toInt64, pero devuelve 0 en lugar de lanzar una excepción.
Véase también:
Sintaxis
toInt64OrZero(x)Argumentos
x— Valor de entrada que se va a convertir.StringoFixedStringoFloat*oDecimalo(U)Int*oDateoDateTime
Valor devuelto
Devuelve el valor de entrada convertido; en caso contrario, 0 si la conversión falla. Int64
Ejemplos
Ejemplo de uso
SELECT toInt64OrZero('123')123Si la conversión falla, devuelve cero
SELECT toInt64OrZero('abc')0toInt8
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo Int8.
Lanza una excepción en caso de error.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores del tipo Float*.
Argumentos no admitidos:
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toInt8('0xc0fe');.
Véase también:
Sintaxis
toInt8(expr)Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Expresión
Valor devuelto
Devuelve un valor entero de 8 bits. Int8
Ejemplos
Ejemplo de uso
SELECT
toInt8(-8),
toInt8(-8.8),
toInt8('-8')
FORMAT VerticalRow 1:
──────
toInt8(-8): -8
toInt8(-8.8): -8
toInt8('-8'): -8toInt8OrDefault
Introducido en: v21.11.0
Al igual que toInt8, esta función convierte un valor de entrada en un valor de tipo Int8, pero devuelve el valor predeterminado si se produce un error.
Si no se proporciona ningún valor default, se devuelve 0 en caso de error.
Sintaxis
toInt8OrDefault(expr[, default])Argumentos
expr— Expresión que devuelve un número o una representación en cadena de un número.Stringo(U)Int*oFloat*default— Opcional. El valor predeterminado que se devuelve si no se puede analizar.Int8
Valor devuelto
Devuelve un valor de tipo Int8 si la conversión se realiza correctamente; de lo contrario, devuelve el valor predeterminado si se proporcionó, o 0 si no. Int8
Ejemplos
Conversión correcta
SELECT toInt8OrDefault('-8', CAST('-1', 'Int8'))-8Error de conversión
SELECT toInt8OrDefault('abc', CAST('-1', 'Int8'))-1toInt8OrNull
Introducido en: v1.1.0
Al igual que toInt8, esta función convierte un valor de entrada en un valor de tipo Int8, pero devuelve NULL en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int*.
Argumentos no admitidos (devuelven NULL):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toInt8OrNull('0xc0fe');.
Véase también:
Sintaxis
toInt8OrNull(x)Argumentos
x— Una representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo Int8 o NULL si la conversión no se realiza correctamente. Int8 o NULL
Ejemplos
Ejemplo de uso
SELECT
toInt8OrNull('-8'),
toInt8OrNull('abc')
FORMAT VerticalRow 1:
──────
toInt8OrNull('-8'): -8
toInt8OrNull('abc'): ᴺᵁᴸᴸtoInt8OrZero
Introducido en: v1.1.0
Al igual que toInt8, esta función convierte un valor de entrada en un valor de tipo Int8, pero devuelve 0 en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int*.
Argumentos no admitidos (devuelven 0):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toInt8OrZero('0xc0fe');.
Véase también:
Sintaxis
toInt8OrZero(x)Argumentos
x— Una representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo Int8; de lo contrario, 0 si la conversión no se realiza correctamente. Int8
Ejemplos
Ejemplo de uso
SELECT
toInt8OrZero('8'),
toInt8OrZero('abc')
FORMAT VerticalRow 1:
──────
toInt8OrZero('8'): 8
toInt8OrZero('abc'): 0toInterval
Introducido en: v25.4.0
Crea un valor de Interval a partir de un valor numérico y de una cadena que indica la unidad.
Esta función proporciona una forma unificada de crear intervalos de distintos tipos (segundos, minutos, horas, días, semanas, meses, trimestres, años) desde una sola función, especificando la unidad como un argumento de cadena. La cadena de la unidad no distingue entre mayúsculas y minúsculas.
Esto equivale a llamar a funciones específicas de tipo como toIntervalSecond, toIntervalMinute, toIntervalDay, etc.,
pero permite especificar la unidad de forma dinámica como un parámetro de cadena.
Sintaxis
toInterval(value, unit)Argumentos
value— El valor numérico que representa el número de unidades. Puede ser cualquier tipo numérico.Int8oInt16oInt32oInt64oUInt8oUInt16oUInt32oUInt64oFloat32oFloat64unit— La unidad de tiempo. Debe ser una cadena constante. Valores válidos: 'nanosecond', 'microsecond', 'millisecond', 'second', 'minute', 'hour', 'day', 'week', 'month', 'quarter', 'year'.String
Valor devuelto
Devuelve un valor Interval del tipo especificado. El tipo de resultado depende de la unidad: IntervalNanosecond, IntervalMicrosecond, IntervalMillisecond, IntervalSecond, IntervalMinute, IntervalHour, IntervalDay, IntervalWeek, IntervalMonth, IntervalQuarter o IntervalYear. Interval
Ejemplos
Crear intervalos con distintas unidades
SELECT
toInterval(5, 'second') AS seconds,
toInterval(3, 'day') AS days,
toInterval(2, 'month') AS months┌─seconds─┬─days─┬─months─┐
│ 5 │ 3 │ 2 │
└─────────┴──────┴────────┘Usar intervalos en la aritmética de fechas
SELECT
now() AS current_time,
now() + toInterval(1, 'hour') AS one_hour_later,
now() - toInterval(7, 'day') AS week_ago┌─────────current_time─┬──one_hour_later─────┬────────────week_ago─┐
│ 2025-01-04 10:30:00 │ 2025-01-04 11:30:00 │ 2024-12-28 10:30:00 │
└──────────────────────┴─────────────────────┴─────────────────────┘Creación dinámica de intervalos
SELECT toDate('2025-01-01') + toInterval(number, 'day') AS dates
FROM numbers(5)┌──────dates─┐
│ 2025-01-01 │
│ 2025-01-02 │
│ 2025-01-03 │
│ 2025-01-04 │
│ 2025-01-05 │
└────────────┘toIntervalDay
Introducido en: v1.1.0
Devuelve un intervalo de n días del tipo de datos IntervalDay.
Sintaxis
toIntervalDay(n)Argumentos
n— Número de días. Números enteros o su representación en cadena, y números de coma flotante.(U)Int*oFloat*oString
Valor devuelto
Devuelve un intervalo de n días. Interval
Ejemplos
Ejemplo de uso
WITH
toDate('2025-06-15') AS date,
toIntervalDay(5) AS interval_to_days
SELECT date + interval_to_days AS result┌─────result─┐
│ 2025-06-20 │
└────────────┘toIntervalHour
Introducido en: v1.1.0
Devuelve un intervalo de n horas del tipo de dato IntervalHour.
Sintaxis
toIntervalHour(n)Argumentos
n— Número de horas. Números enteros o sus representaciones en cadena, y números de coma flotante.Int*oUInt*oFloat*oString
Valor devuelto
Devuelve un intervalo de n horas. Interval
Ejemplos
Ejemplo de uso
WITH
toDate('2025-06-15') AS date,
toIntervalHour(12) AS interval_to_hours
SELECT date + interval_to_hours AS result┌──────────────result─┐
│ 2025-06-15 12:00:00 │
└─────────────────────┘toIntervalMicrosecond
Introducido en: v22.6.0
Devuelve un intervalo de n microsegundos del tipo de dato IntervalMicrosecond.
Sintaxis
toIntervalMicrosecond(n)Argumentos
Valor devuelto
Devuelve un intervalo de n microsegundos. Interval
Ejemplos
Ejemplo de uso
WITH
toDateTime('2025-06-15') AS date,
toIntervalMicrosecond(30) AS interval_to_microseconds
SELECT date + interval_to_microseconds AS result┌─────────────────────result─┐
│ 2025-06-15 00:00:00.000030 │
└────────────────────────────┘toIntervalMillisecond
Introducido en: v22.6.0
Devuelve un intervalo de n milisegundos del tipo de datos IntervalMillisecond.
Sintaxis
toIntervalMillisecond(n)Argumentos
Valor devuelto
Devuelve un intervalo de n milisegundos. Interval
Ejemplos
Ejemplo de uso
WITH
toDateTime('2025-06-15') AS date,
toIntervalMillisecond(30) AS interval_to_milliseconds
SELECT date + interval_to_milliseconds AS result┌──────────────────result─┐
│ 2025-06-15 00:00:00.030 │
└─────────────────────────┘toIntervalMinute
Introducido en: v1.1.0
Devuelve un intervalo de n minutos del tipo de datos IntervalMinute.
Sintaxis
toIntervalMinute(n)Argumentos
n— Número de minutos. Números enteros o sus representaciones en cadena, y números de punto flotante.(U)Int*oFloat*oString
Valor devuelto
Devuelve un intervalo de n minutos. Interval
Ejemplos
Ejemplo de uso
WITH
toDate('2025-06-15') AS date,
toIntervalMinute(12) AS interval_to_minutes
SELECT date + interval_to_minutes AS result┌──────────────result─┐
│ 2025-06-15 00:12:00 │
└─────────────────────┘toIntervalMonth
Introducido en: v1.1.0
Devuelve un intervalo de n meses del tipo de datos IntervalMonth.
Sintaxis
toIntervalMonth(n)Argumentos
Valor devuelto
Devuelve un intervalo de n meses. Interval
Ejemplos
Ejemplo de uso
WITH
toDate('2025-06-15') AS date,
toIntervalMonth(1) AS interval_to_month
SELECT date + interval_to_month AS result┌─────result─┐
│ 2025-07-15 │
└────────────┘toIntervalNanosecond
Introducido en: v22.6.0
Devuelve un intervalo de n nanosegundos del tipo de dato IntervalNanosecond.
Sintaxis
toIntervalNanosecond(n)Argumentos
Valor devuelto
Devuelve un intervalo de n nanosegundos. Interval
Ejemplos
Ejemplo de uso
WITH
toDateTime('2025-06-15') AS date,
toIntervalNanosecond(30) AS interval_to_nanoseconds
SELECT date + interval_to_nanoseconds AS result┌────────────────────────result─┐
│ 2025-06-15 00:00:00.000000030 │
└───────────────────────────────┘toIntervalQuarter
Introducido en: v1.1.0
Devuelve un intervalo de n trimestres del tipo de dato IntervalQuarter.
Sintaxis
toIntervalQuarter(n)Argumentos
Valor devuelto
Devuelve un intervalo de n trimestres. Interval
Ejemplos
Ejemplo de uso
WITH
toDate('2025-06-15') AS date,
toIntervalQuarter(1) AS interval_to_quarter
SELECT date + interval_to_quarter AS result┌─────result─┐
│ 2025-09-15 │
└────────────┘toIntervalSecond
Introducido en: v1.1.0
Devuelve un intervalo de n segundos del tipo de datos IntervalSecond.
Sintaxis
toIntervalSecond(n)Argumentos
n— Número de segundos. Números enteros o sus representaciones como cadenas, y números de coma flotante.(U)Int*oFloat*oString
Valor devuelto
Devuelve un intervalo de n segundos. Interval
Ejemplos
Ejemplo de uso
WITH
toDate('2025-06-15') AS date,
toIntervalSecond(30) AS interval_to_seconds
SELECT date + interval_to_seconds AS result┌──────────────result─┐
│ 2025-06-15 00:00:30 │
└─────────────────────┘toIntervalWeek
Introducido en: v1.1.0
Devuelve un intervalo de n semanas del tipo de datos IntervalWeek.
Sintaxis
toIntervalWeek(n)Argumentos
Valor devuelto
Devuelve un intervalo de n semanas. Interval
Ejemplos
Ejemplo de uso
WITH
toDate('2025-06-15') AS date,
toIntervalWeek(1) AS interval_to_week
SELECT date + interval_to_week AS result┌─────result─┐
│ 2025-06-22 │
└────────────┘toIntervalYear
Introducido en: v1.1.0
Devuelve un intervalo de n años del tipo de dato IntervalYear.
Sintaxis
toIntervalYear(n)Argumentos
Valor devuelto
Devuelve un intervalo de n años. Interval
Ejemplos
Ejemplo de uso
WITH
toDate('2024-06-15') AS date,
toIntervalYear(1) AS interval_to_year
SELECT date + interval_to_year AS result┌─────result─┐
│ 2025-06-15 │
└────────────┘toLowCardinality
Introducido en: v18.12.0
Convierte el argumento de entrada en la versión LowCardinality del mismo tipo de dato.
Sintaxis
toLowCardinality(expr)Argumentos
expr— Expresión que da como resultado uno de los tipos de datos admitidos:StringoFixedStringoDateoDateTimeo(U)Int*oFloat*
Valor devuelto
Devuelve el valor de entrada convertido al tipo de dato LowCardinality. LowCardinality
Ejemplos
Ejemplo de uso
SELECT toLowCardinality('1')┌─toLowCardinality('1')─┐
│ 1 │
└───────────────────────┘toString
Introducido en: v1.1.0
Convierte valores a su representación como cadena. Para argumentos DateTime, la función puede tomar un segundo argumento String que contenga el nombre de la zona horaria.
Sintaxis
toString(value[, timezone])Argumentos
value— Valor que se convertirá en cadena.Anytimezone— Opcional. Nombre de la zona horaria para convertir DateTime.String
Valor devuelto
Devuelve una representación en cadena del valor de entrada. String
Ejemplos
Ejemplo de uso
SELECT
now() AS ts,
time_zone,
toString(ts, time_zone) AS str_tz_datetime
FROM system.time_zones
WHERE time_zone LIKE 'Europe%'
LIMIT 10┌──────────────────ts─┬─time_zone─────────┬─str_tz_datetime─────┐
│ 2023-09-08 19:14:59 │ Europe/Amsterdam │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Andorra │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Astrakhan │ 2023-09-08 23:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Athens │ 2023-09-08 22:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Belfast │ 2023-09-08 20:14:59 │
└─────────────────────┴───────────────────┴─────────────────────┘toStringCutToZero
Introducida en: v1.1.0
Acepta un argumento de tipo String o FixedString y devuelve un String que contiene una copia de la cadena original truncada en el primer byte nulo.
Los bytes nulos (\0) se consideran terminadores de cadena. Esta función resulta útil para procesar cadenas de estilo C o datos binarios en los que los bytes nulos marcan el final del contenido significativo.
Sintaxis
toStringCutToZero(s)Argumentos
s— String o FixedString que se va a procesar.StringoFixedString
Valor devuelto
Devuelve un String que contiene los caracteres anteriores al primer byte nulo. String
Ejemplos
Ejemplo de uso
SELECT
toStringCutToZero('hello'),
toStringCutToZero('hello\0world')┌─toStringCutToZero('hello')─┬─toStringCutToZero('hello\0world')─┐
│ hello │ hello │
└────────────────────────────┴───────────────────────────────────┘toTime
Introducido en: v25.5.0
Convierte un valor de entrada al tipo Time.
Admite la conversión desde String, FixedString, DateTime, DateTime64 o tipos numéricos que representan segundos desde la medianoche.
Los valores numéricos fuera del rango del tipo (de -999:59:59 a 999:59:59, es decir, de -3599999 a 3599999 segundos) se saturan a los límites del rango, y los valores de coma flotante no finitos (NaN, inf, -inf) no se pueden convertir y generan una excepción.
Sintaxis
toTime(x)Argumentos
x— Valor de entrada que se debe convertir.StringoFixedStringoDateTimeoDateTime64o(U)Int*oBFloat16oFloat*
Valor devuelto
Devuelve el valor convertido. Time
Ejemplos
Conversión de DateTime64 a Time
SET enable_time_time64_type = 1;
SET use_legacy_to_time = 0;
SELECT toTime(toDateTime64('2025-04-15 14:30:25.123', 3))14:30:25Conversión de DateTime a Time
SET enable_time_time64_type = 1;
SET use_legacy_to_time = 0;
SELECT toTime(toDateTime('2025-04-15 14:30:25'))14:30:25Conversión de entero (segundos desde epoch) a Time
SET enable_time_time64_type = 1;
SET use_legacy_to_time = 0;
SELECT toTime(toDateTime(52225, 'UTC'))14:30:25toTime64
Introducido en: v25.6.0
Convierte un valor de entrada al tipo Time64.
Admite la conversión desde String, FixedString, DateTime64 o tipos numéricos que representan los segundos transcurridos desde la medianoche.
Proporciona precisión de subsegundos para valores de tiempo, con hasta scale dígitos fraccionarios.
Sintaxis
toTime64(x, scale)Argumentos
x— Valor de entrada que se va a convertir.StringoFixedStringoDateTime64o(U)Int*oFloat*scale— Precisión (número de dígitos fraccionarios,0–9) delTime64resultante.(U)Int*
Valor devuelto
Devuelve el valor convertido con el valor de scale solicitado. Time64
Ejemplos
Conversión de String a Time64
SET enable_time_time64_type = 1;
SELECT toTime64('14:30:25.123456', 6)14:30:25.123456Conversión de DateTime64 a Time64
SET enable_time_time64_type = 1;
SELECT toTime64(toDateTime64('2025-04-15 14:30:25.123456', 6), 6)14:30:25.123456Conversión de Float (segundos transcurridos desde la medianoche) a Time64
SET enable_time_time64_type = 1;
SELECT toTime64(52225.123456, 6)14:30:25.123456toTime64OrNull
Introducido en: v25.6.0
Convierte un valor de entrada en un valor de tipo Time64, pero devuelve NULL en caso de error.
Es como toTime64, pero devuelve NULL en lugar de lanzar una excepción cuando se producen errores de conversión.
Véase también:
Sintaxis
toTime64OrNull(x)Argumentos
x— Una representación textual de una hora con precisión de subsegundos.String
Valor devuelto
Devuelve un valor Time64 si la conversión se realiza correctamente; de lo contrario, NULL. Time64 o NULL
Ejemplos
Ejemplo de uso
SELECT toTime64OrNull('12:30:45.123'), toTime64OrNull('invalid')┌─toTime64OrNull('12:30:45.123')─┬─toTime64OrNull('invalid')─┐
│ 12:30:45.123 │ ᴺᵁᴸᴸ │
└────────────────────────────────┴───────────────────────────┘toTime64OrZero
Introducido en: v25.6.0
Convierte un valor de entrada a un valor de tipo Time64, pero devuelve 00:00:00.000 en caso de error.
Al igual que toTime64, pero devuelve 00:00:00.000 en lugar de lanzar una excepción ante errores de conversión.
Sintaxis
toTime64OrZero(x)Argumentos
x— Una representación textual de una hora con precisión de subsegundos.String
Valor devuelto
Devuelve un valor Time64 si la operación se realiza correctamente; de lo contrario, 00:00:00.000. Time64
Ejemplos
Ejemplo de uso
SELECT toTime64OrZero('12:30:45.123'), toTime64OrZero('invalid')┌─toTime64OrZero('12:30:45.123')─┬─toTime64OrZero('invalid')─┐
│ 12:30:45.123 │ 00:00:00.000 │
└────────────────────────────────┴───────────────────────────┘toTimeOrNull
Introducido en: v25.5.0
Convierte un valor de entrada en un valor de tipo Time, pero devuelve NULL en caso de error.
Al igual que toTime, pero devuelve NULL en lugar de lanzar una excepción si se producen errores de conversión.
Véase también:
Sintaxis
toTimeOrNull(x)Argumentos
x— Una representación textual de una hora.String
Valor devuelto
Devuelve un valor Time si la operación se realiza correctamente; de lo contrario, NULL. Time o NULL
Ejemplos
Ejemplo de uso
SELECT toTimeOrNull('12:30:45'), toTimeOrNull('invalid')┌─toTimeOrNull('12:30:45')─┬─toTimeOrNull('invalid')─┐
│ 12:30:45 │ ᴺᵁᴸᴸ │
└──────────────────────────┴─────────────────────────┘toTimeOrZero
Introducido en: v25.5.0
Convierte un valor de entrada en un valor de tipo Time, pero devuelve 00:00:00 en caso de error.
Al igual que toTime, devuelve 00:00:00 en lugar de lanzar una excepción si se producen errores de conversión.
Sintaxis
toTimeOrZero(x)Argumentos
x— Una representación textual de una hora.String
Valor devuelto
Devuelve un valor Time si la operación se realiza correctamente; de lo contrario, 00:00:00. Time
Ejemplos
Ejemplo de uso
SELECT toTimeOrZero('12:30:45'), toTimeOrZero('invalid')┌─toTimeOrZero('12:30:45')─┬─toTimeOrZero('invalid')─┐
│ 12:30:45 │ 00:00:00 │
└──────────────────────────┴─────────────────────────┘toUInt128
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo UInt128.
Lanza una excepción en caso de error.
La función usa redondeo hacia cero, lo que significa que trunca los dígitos fraccionarios de los números.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores del tipo Float*.
Argumentos no admitidos:
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt128('0xc0fe');.
Véase también:
Sintaxis
toUInt128(expr)Argumentos
expr— Expresión que devuelve un número o la representación en cadena.Expression
Valor devuelto
Devuelve un entero sin signo de 128 bits. UInt128
Ejemplos
Ejemplo de uso
SELECT
toUInt128(128),
toUInt128(128.8),
toUInt128('128')
FORMAT VerticalRow 1:
──────
toUInt128(128): 128
toUInt128(128.8): 128
toUInt128('128'): 128toUInt128OrDefault
Introducido en: v21.11.0
Al igual que toUInt128, esta función convierte un valor de entrada en un valor de tipo UInt128, pero devuelve el valor predeterminado en caso de error.
Si no se proporciona ningún valor default, se devuelve 0 en caso de error.
Sintaxis
toUInt128OrDefault(expr[, default])Argumentos
expr— Expresión que devuelve un número o una representación en cadena de un número.Stringo(U)Int*oFloat*default— Opcional. El valor predeterminado que se devuelve si el análisis no se realiza correctamente.UInt128
Valor devuelto
Devuelve un valor de tipo UInt128 si la conversión se realiza correctamente; de lo contrario, devuelve el valor predeterminado, si se proporcionó, o 0 si no. UInt128
Ejemplos
Conversión correcta
SELECT toUInt128OrDefault('128', CAST('0', 'UInt128'))128Conversión fallida
SELECT toUInt128OrDefault('abc', CAST('0', 'UInt128'))0toUInt128OrNull
Introducido en: v21.6.0
Al igual que toUInt128, esta función convierte un valor de entrada en un valor del tipo UInt128, pero devuelve NULL en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int*.
Argumentos no admitidos (devuelven NULL):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt128OrNull('0xc0fe');.
Véase también:
Sintaxis
toUInt128OrNull(x)Argumentos
x— Una representación en cadena.String
Valor devuelto
Devuelve un valor de tipo UInt128 o NULL si la conversión no se realiza correctamente. UInt128 o NULL
Ejemplos
Ejemplo de uso
SELECT
toUInt128OrNull('128'),
toUInt128OrNull('abc')
FORMAT VerticalRow 1:
──────
toUInt128OrNull('128'): 128
toUInt128OrNull('abc'): ᴺᵁᴸᴸtoUInt128OrZero
Introducido en: v1.1.0
Al igual que toUInt128, esta función convierte un valor de entrada en un valor de tipo UInt128, pero devuelve 0 en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int*.
Argumentos no admitidos (devuelven 0):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt128OrZero('0xc0fe');.
Véase también:
Sintaxis
toUInt128OrZero(x)Argumentos
x— La representación en cadena.String
Valor devuelto
Devuelve un valor de tipo UInt128; en caso contrario, 0 si la conversión falla. UInt128
Ejemplos
Ejemplo de uso
SELECT
toUInt128OrZero('128'),
toUInt128OrZero('abc')
FORMAT VerticalRow 1:
──────
toUInt128OrZero('128'): 128
toUInt128OrZero('abc'): 0toUInt16
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo UInt16.
Lanza una excepción en caso de error.
Argumentos admitidos:
- Valores o representaciones en cadena de tipo (U)Int*.
- Valores de tipo Float*.
Argumentos no admitidos:
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt16('0xc0fe');.
Véase también:
Sintaxis
toUInt16(expr)Argumentos
expr— Expresión que devuelve un número o una representación en cadena.Expression
Valor devuelto
Devuelve un valor entero sin signo de 16 bits. UInt16
Ejemplos
Ejemplo de uso
SELECT
toUInt16(16),
toUInt16(16.16),
toUInt16('16')
FORMAT VerticalRow 1:
──────
toUInt16(16): 16
toUInt16(16.16): 16
toUInt16('16'): 16toUInt16OrDefault
Introducido en: v21.11.0
Al igual que toUInt16, esta función convierte un valor de entrada en un valor de tipo UInt16, pero devuelve el valor por defecto en caso de error.
Si no se proporciona ningún valor default, se devuelve 0 en caso de error.
Sintaxis
toUInt16OrDefault(expr[, default])Argumentos
expr— Expresión que devuelve un número o su representación en cadena.Stringo(U)Int*oFloat*default— Opcional. El valor predeterminado que se devuelve si el análisis no se realiza correctamente.UInt16
Valor devuelto
Devuelve un valor de tipo UInt16 si la conversión se realiza correctamente; en caso contrario, devuelve el valor predeterminado, si se proporcionó, o 0 si no. UInt16
Ejemplos
Conversión correcta
SELECT toUInt16OrDefault('16', CAST('0', 'UInt16'))16Conversión fallida
SELECT toUInt16OrDefault('abc', CAST('0', 'UInt16'))0toUInt16OrNull
Introducido en: v1.1.0
Al igual que toUInt16, esta función convierte un valor de entrada en un valor de tipo UInt16, pero devuelve NULL en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int8/16/32/128/256.
Argumentos no admitidos (devuelven NULL):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt16OrNull('0xc0fe');.
Véase también:
Sintaxis
toUInt16OrNull(x)Argumentos
x— Una representación en cadena.String
Valor devuelto
Devuelve un valor de tipo UInt16; en caso contrario, NULL si la conversión no se realiza correctamente. UInt16 o NULL
Ejemplos
Ejemplo de uso
SELECT
toUInt16OrNull('16'),
toUInt16OrNull('abc')
FORMAT VerticalRow 1:
──────
toUInt16OrNull('16'): 16
toUInt16OrNull('abc'): ᴺᵁᴸᴸtoUInt16OrZero
Introducido en: v1.1.0
Al igual que toUInt16, esta función convierte un valor de entrada en un valor de tipo UInt16, pero devuelve 0 en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int8/16/32/128/256.
Argumentos no admitidos (devuelven 0):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt16OrZero('0xc0fe');.
Véase también:
Sintaxis
toUInt16OrZero(x)Argumentos
x— La representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo UInt16; en caso contrario, 0 si la conversión no se realiza correctamente. UInt16
Ejemplos
Ejemplo de uso
SELECT
toUInt16OrZero('16'),
toUInt16OrZero('abc')
FORMAT VerticalRow 1:
──────
toUInt16OrZero('16'): 16
toUInt16OrZero('abc'): 0toUInt256
Introducido en: v1.1.0
Convierte un valor de entrada a un valor de tipo UInt256. Lanza una excepción en caso de error. La función utiliza redondeo hacia cero, lo que significa que trunca los dígitos fraccionarios de los números.
Argumentos admitidos:
- Valores o representaciones en cadena de tipo (U)Int*.
- Valores de tipo Float*.
Argumentos no admitidos:
- Representaciones en cadena de valores de tipo Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt256('0xc0fe');.
Véase también:
Sintaxis
toUInt256(expr)Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Expresión
Valor devuelto
Devuelve un valor entero sin signo de 256 bits. UInt256
Ejemplos
Ejemplo de uso
SELECT
toUInt256(256),
toUInt256(256.256),
toUInt256('256')
FORMAT VerticalRow 1:
──────
toUInt256(256): 256
toUInt256(256.256): 256
toUInt256('256'): 256toUInt256OrDefault
Introducido en: v21.11.0
Al igual que toUInt256, esta función convierte un valor de entrada en un valor del tipo UInt256, pero devuelve el valor predeterminado en caso de error.
Si no se pasa ningún valor default, se devuelve 0 en caso de error.
Sintaxis
toUInt256OrDefault(expr[, default])Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Stringo(U)Int*oFloat*default— Opcional. El valor predeterminado que se devuelve si el análisis no se realiza correctamente.UInt256
Valor devuelto
Devuelve un valor de tipo UInt256 si la conversión se realiza correctamente; de lo contrario, devuelve el valor predeterminado si se proporciona, o 0 en caso contrario. UInt256
Ejemplos
Conversión correcta
SELECT toUInt256OrDefault('-256', CAST('0', 'UInt256'))0Error de conversión
SELECT toUInt256OrDefault('abc', CAST('0', 'UInt256'))0toUInt256OrNull
Introducido en: v20.8.0
Al igual que toUInt256, esta función convierte un valor de entrada en un valor de tipo UInt256, pero devuelve NULL en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int*.
Argumentos no admitidos (devuelven NULL):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt256OrNull('0xc0fe');.
Véase también:
Sintaxis
toUInt256OrNull(x)Argumentos
x— La representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo UInt256 o NULL si la conversión no se realiza correctamente. UInt256 o NULL
Ejemplos
Ejemplo de uso
SELECT
toUInt256OrNull('256'),
toUInt256OrNull('abc')
FORMAT VerticalRow 1:
──────
toUInt256OrNull('256'): 256
toUInt256OrNull('abc'): ᴺᵁᴸᴸtoUInt256OrZero
Introducido en: v20.8.0
Al igual que toUInt256, esta función convierte un valor de entrada en un valor del tipo UInt256, pero devuelve 0 en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int*.
Argumentos no admitidos (devuelven 0):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales, por ejemplo,
SELECT toUInt256OrZero('0xc0fe');.
Véase también:
Sintaxis
toUInt256OrZero(x)Argumentos
x— La representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo UInt256; de lo contrario, 0 si la conversión no se realiza correctamente. UInt256
Ejemplos
Ejemplo de uso
SELECT
toUInt256OrZero('256'),
toUInt256OrZero('abc')
FORMAT VerticalRow 1:
──────
toUInt256OrZero('256'): 256
toUInt256OrZero('abc'): 0toUInt32
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo UInt32.
Lanza una excepción en caso de error.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores del tipo Float*.
Argumentos no admitidos:
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt32('0xc0fe');.
Véase también:
Sintaxis
toUInt32(expr)Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Expresión
Valor devuelto
Devuelve un valor entero sin signo de 32 bits. UInt32
Ejemplos
Ejemplo de uso
SELECT
toUInt32(32),
toUInt32(32.32),
toUInt32('32')
FORMAT VerticalRow 1:
──────
toUInt32(32): 32
toUInt32(32.32): 32
toUInt32('32'): 32toUInt32OrDefault
Introducido en: v21.11.0
Al igual que toUInt32, esta función convierte un valor de entrada en un valor del tipo UInt32, pero devuelve el valor predeterminado en caso de error.
Si no se pasa ningún valor default, se devuelve 0 en caso de error.
Sintaxis
toUInt32OrDefault(expr[, default])Argumentos
expr— Expresión que devuelve un número o una representación en cadena de caracteres de un número.Stringo(U)Int*oFloat*default— Opcional. El valor predeterminado que se devuelve si el análisis falla.UInt32
Valor devuelto
Devuelve un valor de tipo UInt32 si la conversión se realiza con éxito; de lo contrario, devuelve el valor predeterminado si se proporciona, o 0 en caso contrario. UInt32
Ejemplos
Conversión exitosa
SELECT toUInt32OrDefault('32', CAST('0', 'UInt32'))32Conversión fallida
SELECT toUInt32OrDefault('abc', CAST('0', 'UInt32'))0toUInt32OrNull
Introducido en: v1.1.0
Al igual que toUInt32, esta función convierte un valor de entrada en un valor de tipo UInt32, pero devuelve NULL en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int8/16/32/128/256.
Argumentos no admitidos (devuelven NULL):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt32OrNull('0xc0fe');.
Véase también:
Sintaxis
toUInt32OrNull(x)Argumentos
x— La representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo UInt32 o NULL si la conversión no se realiza correctamente. UInt32 o NULL
Ejemplos
Ejemplo de uso
SELECT
toUInt32OrNull('32'),
toUInt32OrNull('abc')
FORMAT VerticalRow 1:
──────
toUInt32OrNull('32'): 32
toUInt32OrNull('abc'): ᴺᵁᴸᴸtoUInt32OrZero
Introducido en: v1.1.0
Al igual que toUInt32, esta función convierte un valor de entrada en un valor del tipo UInt32, pero devuelve 0 en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int8/16/32/128/256.
Argumentos no admitidos (devuelven 0):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt32OrZero('0xc0fe');.
Véase también:
Sintaxis
toUInt32OrZero(x)Argumentos
x— Una representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo UInt32 o 0 si la conversión no se realiza correctamente. UInt32
Ejemplos
Ejemplo de uso
SELECT
toUInt32OrZero('32'),
toUInt32OrZero('abc')
FORMAT VerticalRow 1:
──────
toUInt32OrZero('32'): 32
toUInt32OrZero('abc'): 0toUInt64
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo UInt64.
Lanza una excepción en caso de error.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores del tipo Float*.
Tipos no admitidos:
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt64('0xc0fe');.
Véase también:
Sintaxis
toUInt64(expr)Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Expresión
Valor devuelto
Devuelve un valor entero sin signo de 64 bits. UInt64
Ejemplos
Ejemplo de uso
SELECT
toUInt64(64),
toUInt64(64.64),
toUInt64('64')
FORMAT VerticalRow 1:
──────
toUInt64(64): 64
toUInt64(64.64): 64
toUInt64('64'): 64toUInt64OrDefault
Introducido en: v21.11.0
Al igual que toUInt64, esta función convierte un valor de entrada en un valor del tipo UInt64, pero devuelve el valor predeterminado en caso de error.
Si no se pasa ningún valor default, se devuelve 0 en caso de error.
Sintaxis
toUInt64OrDefault(expr[, default])Argumentos
expr— Expresión que devuelve un número o una representación en cadena de un número.Stringo(U)Int*oFloat*default— Opcional. El valor predeterminado que se devolverá si el análisis sintáctico no se completa correctamente.UInt64
Valor devuelto
Devuelve un valor de tipo UInt64 si la conversión se realiza correctamente; en caso contrario, devuelve el valor predeterminado si se proporciona, o 0 si no. UInt64
Ejemplos
Conversión correcta
SELECT toUInt64OrDefault('64', CAST('0', 'UInt64'))64Error de conversión
SELECT toUInt64OrDefault('abc', CAST('0', 'UInt64'))0toUInt64OrNull
Introducido en: v1.1.0
Al igual que toUInt64, esta función convierte un valor de entrada en un valor de tipo UInt64, pero devuelve NULL en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int*.
Argumentos no admitidos (devuelven NULL):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt64OrNull('0xc0fe');.
Véase también:
Sintaxis
toUInt64OrNull(x)Argumentos
x— Una representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo UInt64 o NULL si la conversión no se realiza correctamente. UInt64 o NULL
Ejemplos
Ejemplo de uso
SELECT
toUInt64OrNull('64'),
toUInt64OrNull('abc')
FORMAT VerticalRow 1:
──────
toUInt64OrNull('64'): 64
toUInt64OrNull('abc'): ᴺᵁᴸᴸtoUInt64OrZero
Introducido en: v1.1.0
Al igual que toUInt64, esta función convierte un valor de entrada en un valor de tipo UInt64, pero devuelve 0 en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int*.
Argumentos no admitidos (devuelven 0):
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt64OrZero('0xc0fe');.
Véase también:
Sintaxis
toUInt64OrZero(x)Argumentos
x— La representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo UInt64 o, si la conversión falla, 0. UInt64
Ejemplos
Ejemplo de uso
SELECT
toUInt64OrZero('64'),
toUInt64OrZero('abc')
FORMAT VerticalRow 1:
──────
toUInt64OrZero('64'): 64
toUInt64OrZero('abc'): 0toUInt8
Introducido en: v1.1.0
Convierte un valor de entrada en un valor de tipo UInt8.
Lanza una excepción en caso de error.
Argumentos admitidos:
- Valores o representaciones en cadena del tipo (U)Int*.
- Valores del tipo Float*.
Argumentos no admitidos:
- Representaciones en cadena de valores Float*, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt8('0xc0fe');.
Véase también:
Sintaxis
toUInt8(expr)Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Expresión
Valor devuelto
Devuelve un valor entero sin signo de 8 bits. UInt8
Ejemplos
Ejemplo de uso
SELECT
toUInt8(8),
toUInt8(8.8),
toUInt8('8')
FORMAT VerticalRow 1:
──────
toUInt8(8): 8
toUInt8(8.8): 8
toUInt8('8'): 8toUInt8OrDefault
Introducido en: v21.11.0
Al igual que toUInt8, esta función convierte un valor de entrada en un valor del tipo UInt8, pero devuelve el valor predeterminado en caso de que se produzca un error.
Si no se proporciona ningún valor default, se devuelve 0 en caso de error.
Sintaxis
toUInt8OrDefault(expr[, default])Argumentos
expr— Expresión que devuelve un número o la representación en cadena de un número.Stringo(U)Int*oFloat*default— Opcional. El valor predeterminado que se devuelve si el análisis no se realiza correctamente.UInt8
Valor devuelto
Devuelve un valor de tipo UInt8 si la conversión se realiza correctamente; de lo contrario, devuelve el valor predeterminado si se proporciona, o 0 si no. UInt8
Ejemplos
Conversión exitosa
SELECT toUInt8OrDefault('8', CAST('0', 'UInt8'))8Error de conversión
SELECT toUInt8OrDefault('abc', CAST('0', 'UInt8'))0toUInt8OrNull
Introducido en: v1.1.0
Al igual que toUInt8, esta función convierte un valor de entrada a un valor del tipo UInt8, pero devuelve NULL en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int8/16/32/128/256.
Argumentos no admitidos (devuelven NULL):
- Representaciones en cadena de valores Float* normales, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt8OrNull('0xc0fe');.
Véase también:
Sintaxis
toUInt8OrNull(x)Argumentos
x— Una representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo UInt8, o NULL si la conversión no se realiza correctamente. UInt8 o NULL
Ejemplos
Ejemplo de uso
SELECT
toUInt8OrNull('42'),
toUInt8OrNull('abc')
FORMAT VerticalRow 1:
──────
toUInt8OrNull('42'): 42
toUInt8OrNull('abc'): ᴺᵁᴸᴸtoUInt8OrZero
Introducido en: v1.1.0
Al igual que toUInt8, esta función convierte un valor de entrada en un valor de tipo UInt8, pero devuelve 0 en caso de error.
Argumentos admitidos:
- Representaciones en cadena de (U)Int8/16/32/128/256.
Argumentos no admitidos (devuelve 0):
- Representaciones en cadena de valores Float* normales, incluidos
NaNeInf. - Representaciones en cadena de valores binarios y hexadecimales; por ejemplo,
SELECT toUInt8OrZero('0xc0fe');.
Véase también:
Sintaxis
toUInt8OrZero(x)Argumentos
x— La representación en cadena de un número.String
Valor devuelto
Devuelve un valor de tipo UInt8; en caso contrario, 0 si la conversión no se realiza correctamente. UInt8
Ejemplos
Ejemplo de uso
SELECT
toUInt8OrZero('-8'),
toUInt8OrZero('abc')
FORMAT VerticalRow 1:
──────
toUInt8OrZero('-8'): 0
toUInt8OrZero('abc'): 0toUUID
Introducido en: v1.1.0
Convierte un valor de tipo String en un valor UUID.
Sintaxis
toUUID(string)Argumentos
string— UUID como cadena.StringoFixedString
Valor devuelto
Devuelve un UUID a partir de la representación en cadena del UUID. UUID
Ejemplos
Ejemplo de uso
SELECT toUUID('61f0c404-5cb3-11e7-907b-a6006ad3dba0') AS uuid┌─uuid─────────────────────────────────┐
│ 61f0c404-5cb3-11e7-907b-a6006ad3dba0 │
└──────────────────────────────────────┘toUUIDOrZero
Introducido en: v20.12.0
Convierte un valor de entrada en un valor de tipo UUID, pero devuelve un UUID con ceros en caso de error.
Al igual que toUUID, pero devuelve un UUID con ceros (00000000-0000-0000-0000-000000000000) en lugar de generar una excepción cuando se producen errores de conversión.
Argumentos admitidos:
- Representaciones de UUID en cadena en formato estándar (8-4-4-4-12 dígitos hexadecimales).
- Representaciones de UUID en cadena sin guiones (32 dígitos hexadecimales).
Argumentos no admitidos (devuelven un UUID con ceros):
- Formatos de cadena no válidos.
- Tipos que no son cadenas.
Sintaxis
toUUIDOrZero(x)Argumentos
x— Una representación textual de un UUID.String
Valor devuelto
Devuelve un valor UUID si la operación se realiza correctamente; en caso contrario, un UUID con valor cero (00000000-0000-0000-0000-000000000000). UUID
Ejemplos
Ejemplo de uso
SELECT
toUUIDOrZero('550e8400-e29b-41d4-a716-446655440000') AS valid_uuid,
toUUIDOrZero('invalid-uuid') AS invalid_uuid┌─valid_uuid───────────────────────────┬─invalid_uuid─────────────────────────┐
│ 550e8400-e29b-41d4-a716-446655440000 │ 00000000-0000-0000-0000-000000000000 │
└──────────────────────────────────────┴──────────────────────────────────────┘toUnixTimestamp64Micro
Introducido en: v20.5.0
Convierte un DateTime64 en un valor Int64 con precisión fija de microsegundos.
El valor de entrada se ajusta al alza o a la baja según corresponda, en función de su precisión.
Sintaxis
toUnixTimestamp64Micro(value)Argumentos
value— Valor de DateTime64 con cualquier precisión.DateTime64
Valor devuelto
Devuelve una marca de tiempo Unix en microsegundos. Int64
Ejemplos
Ejemplo de uso
WITH toDateTime64('2025-02-13 23:31:31.011123', 6, 'UTC') AS dt64
SELECT toUnixTimestamp64Micro(dt64);┌─toUnixTimestamp64Micro(dt64)─┐
│ 1739489491011123 │
└──────────────────────────────┘toUnixTimestamp64Milli
Introducido en: v20.5.0
Convierte un DateTime64 en un valor Int64 con precisión fija de milisegundos.
El valor de entrada se escala hacia arriba o hacia abajo según corresponda, en función de su precisión.
Sintaxis
toUnixTimestamp64Milli(value)Argumentos
value— Valor de DateTime64 con cualquier precisión.DateTime64
Valor devuelto
Devuelve una marca de tiempo Unix en milisegundos. Int64
Ejemplos
Ejemplo de uso
WITH toDateTime64('2025-02-13 23:31:31.011', 3, 'UTC') AS dt64
SELECT toUnixTimestamp64Milli(dt64);┌─toUnixTimestamp64Milli(dt64)─┐
│ 1739489491011 │
└──────────────────────────────┘toUnixTimestamp64Nano
Introducido en: v20.5.0
Convierte un DateTime64 en un valor Int64 con precisión fija de nanosegundos.
El valor de entrada se escala hacia arriba o hacia abajo según corresponda, en función de su precisión.
Sintaxis
toUnixTimestamp64Nano(value)Argumentos
value— Valor de DateTime64 con cualquier precisión.DateTime64
Valor devuelto
Devuelve una marca de tiempo Unix en nanosegundos. Int64
Ejemplos
Ejemplo de uso
WITH toDateTime64('2025-02-13 23:31:31.011123456', 9, 'UTC') AS dt64
SELECT toUnixTimestamp64Nano(dt64);┌─toUnixTimestamp64Nano(dt64)─┐
│ 1739489491011123456 │
└─────────────────────────────┘toUnixTimestamp64Second
Introducido en: v24.12.0
Convierte un DateTime64 en un valor Int64 con precisión fija de segundos.
El valor de entrada se ajusta hacia arriba o hacia abajo según corresponda, en función de su precisión.
Sintaxis
toUnixTimestamp64Second(value)Argumentos
value— Valor de DateTime64 con cualquier precisión.DateTime64
Valor devuelto
Devuelve una marca de tiempo Unix en segundos. Int64
Ejemplos
Ejemplo de uso
WITH toDateTime64('2025-02-13 23:31:31.011', 3, 'UTC') AS dt64
SELECT toUnixTimestamp64Second(dt64);┌─toUnixTimestamp64Second(dt64)─┐
│ 1739489491 │
└───────────────────────────────┘