Si usted es el propietario de una capa de entidades alojada, o un administrador de su organización, puede agregar, eliminar y calcular campos de capas de entidades alojadas. Existen algunas restricciones, por ejemplo, no puede eliminar ni calcular el campo OBJECTID. Si usted es el propietario de una capa de entidades espaciotemporales alojada o un administrador de portal, puede agregar un campo a la capa desde la página del elemento a partir de ArcGIS Enterprise 10.6.1. Puede consultar la lista completa de restricciones en la sección Restricciones.
Para agregar, eliminar o calcular campos de una capa de entidades alojada, primero debe mostrar la tabla de atributos de la capa. Consulte Mostrar tablas para obtener más información sobre las tablas.
Agregar campo
- Siga los pasos para mostrar una tabla.
- Haga clic en el botón Opciones .
- Haga clic en Agregar campo.
- Nombre: los nombres de campo no pueden incluir caracteres especiales, como espacios, guiones, paréntesis, llaves o caracteres como $, % y #. Evite usar nombres de campo que contengan palabras que generalmente se consideran palabras clave reservadas de bases de datos, como CHARACTER o DATE. Si intenta agregar un nombre de campo con caracteres especiales o una palabra clave reservada de base de datos, se le mostrará un mensaje de error.
- Alias: Nombre alternativo de un campo, más descriptivo y fácil de interpretar por el usuario que el nombre. El alias puede contener caracteres especiales y palabras clave reservadas de base de datos.
- Tipo: Uno de los siguientes:
- Fecha: Fecha y hora. Consulte Trabajar con campos de fecha.
Nota:
Aunque el portal almacena todos los valores de fecha en UTC, normalmente verá y editará las fechas en su zona horaria local porque la mayoría de las aplicaciones realizan conversiones hacia y desde UTC. No obstante, necesitará especificar la zona horaria adecuada cuando cargue los datos, por ejemplo, como archivos o shapefiles CSV, de otro modo, se asumirá que los datos están UTC.
- Doble: Números con decimales.
- Entero: Números enteros del -2.147.483.648 al 2.147.483.647 (entero largo).
- Cadena de caracteres: Cualquier secuencia de caracteres.
- Fecha: Fecha y hora. Consulte Trabajar con campos de fecha.
- Longitud: Longitud máxima, en caracteres, que puede almacenar un campo de cadena de caracteres. Para el tipo de campo Cadena de caracteres se requiere la longitud. El valor predeterminado es 256 caracteres.
- Haga clic en Agregar nuevo campo.
Sugerencia:
Es posible que los campos recién agregados no aparezcan automáticamente en la tabla ni en los elementos emergentes. Para hacer visibles los nuevos campos, edite la configuración de elementos emergentes de la capa.
Agregar un campo a una capa de entidades espaciotemporales alojada
Si necesita agregar un campo a una capa de entidades espaciotemporales alojada que creó al ejecutar la herramienta GeoAnalytics, puede hacerlo desde la página de elementos de la capa.
- Seleccione la capa de entidades espaciotemporales alojada desde una de las pestañas de la página Contenido y abra la página del elemento.
- Haga clic en la pestaña Datos.
- Haga clic en el botón Opciones y, luego, en Agregar campo.
- Proporcione la información siguiente para el nuevo campo:
- Nombre: los nombres de campo no pueden incluir caracteres especiales, como espacios, guiones, paréntesis, llaves o caracteres como $, % y #. Evite usar nombres de campo que contengan palabras que generalmente se consideran palabras clave reservadas de bases de datos, como CHARACTER o DATE. Si intenta agregar un nombre de campo con caracteres especiales o una palabra clave reservada de base de datos, se le mostrará un mensaje de error.
- Alias: Nombre alternativo de un campo, más descriptivo y fácil de interpretar por el usuario que el nombre. El alias puede contener caracteres especiales y palabras clave reservadas de base de datos.
- Tipo: Uno de los siguientes:
- Fecha: Fecha y hora. Consulte Trabajar con campos de fecha.
Nota:
Aunque el portal almacena todos los valores de fecha en UTC, normalmente verá y editará las fechas en su zona horaria local porque la mayoría de las aplicaciones realizan conversiones hacia y desde UTC. No obstante, necesitará especificar la zona horaria adecuada cuando cargue los datos, por ejemplo, como archivos o shapefiles CSV, de otro modo, se asumirá que los datos están UTC.
- Doble: Números con decimales.
- Entero: Números enteros del -2.147.483.648 al 2.147.483.647 (entero largo).
- Cadena de caracteres: Cualquier secuencia de caracteres.
- Fecha: Fecha y hora. Consulte Trabajar con campos de fecha.
- Longitud: Longitud máxima, en caracteres, que puede almacenar un campo de cadena de caracteres. Para el tipo de campo Cadena de caracteres se requiere la longitud. El valor predeterminado es 256 caracteres.
- Haga clic en Agregar nuevo campo.
Sugerencia:
Es posible que los campos recién agregados no aparezcan automáticamente en la tabla ni en los elementos emergentes. Para hacer visibles los nuevos campos, edite la configuración de elementos emergentes de la capa.
Eliminar un campo
- Siga los pasos para mostrar una tabla.
- Haga clic en la columna que contenga el campo que quiera eliminar.
- Haga clic en Eliminar. Confirme que quiere eliminar el campo.
En algunos campos, como OBJECTID, CREATIONDATE, CREATOR, EDITDATE y EDITOR y los campos que se utilizan en su mapa para aplicar estilos y filtros, la opción Eliminar no está disponible. No obstante, es posible que otros mapas utilicen campos para simbología y filtros distintos de los campos que utiliza su mapa y que la opción Eliminar esté disponible para esos campos. Tenga cuidado al eliminar campos que se puedan estar usando para la simbología y el filtrado en otros mapas.
Calcular un campo
Nota:
Los cálculos de campo no se pueden deshacer.- Siga los pasos para mostrar una tabla.
- Haga clic en la columna que contenga el campo cuyos valores desee calcular.
- Haga clic en Calcular.
Aparecerá el cuadro de diálogo Calcular campo.
Operaciones básicas
En el cuadro de diálogo Calcular campo, puede construir expresiones sencillas con operadores como los de suma, resta, multiplicación y división. A continuación se muestran algunos ejemplos y consejos:
- Para multiplicar todos los valores de un campo numérico denominado SAMPLE por 100.0, escriba SAMPLE * 100.0 como expresión.
- Para ecuaciones más complejas, puede usar paréntesis para especificar el orden de los cálculos, por ejemplo, SAMPLE * (BASELINE - 40).
- Los operadores de coincidencia no funcionan en los campos de cadena de caracteres. Deberá usar las funciones de cadena de caracteres que se describen en la sección Funciones de cadenas de caracteres.
- Si va a calcular un campo de tipo doble para convertirlo en un campo de tipo entero, puede agregar la función CAST automáticamente a la expresión. Por ejemplo, si va a calcular un campo de tipo doble llamado POP para ponerlo en un campo de tipo entero llamado SAMPLE, la expresión aparecerá como CAST(SAMPLE AS FLOAT). No quite la función CAST. Consulte Funciones numéricas a continuación para obtener información sobre la función CAST.
- Utilice comillas simples para incluir un apóstrofo en la cadena. Por ejemplo, 'L''Hospitalet'. No utilice comillas dobles.
Después de crear la expresión, haga clic en el botón Calcular. Si hay algún error, aparecerá un mensaje de error en la parte inferior del cuadro de diálogo.
A continuación se indican algunas consideraciones adicionales:
- Si hay un filtro en la capa, solo se calcularán los valores de los registros que cumplan los criterios del filtro.
- Calcular campo solo funciona con nombres de campo, no con alias. La lista Campos muestra todos los nombres de los campos disponibles para los cálculos. Puede filtrar la lista por tipo de campo Cadena de caracteres, Numérico y Fecha.
- Si pasa el ratón por encima del nombre del campo en la lista Campos, se muestran el alias y el tipo de campo.
- Si hace clic en un nombre de campo en la lista Campos, el campo se agrega a la expresión.
Uso de funciones
Además de expresiones sencillas con operadores, también puede usar funciones. Las funciones funcionan con nombres de campos, literales y otras funciones. Por ejemplo, supongamos que necesita calcular un campo doble para que sea TOTALPOP dividido por POP18. Si una función tiene POP18 igual a cero, el cálculo dará como resultado un error de división por cero. Puede protegerse frente a esto con la función NULLIF que se describe a continuación. La expresión sería TOTALPOP / NULLIF(POP18, 0).
Las funciones admiten argumentos. En las tablas siguientes, cualquier argumento puede ser:
- Un nombre de campo, siempre que el tipo del campo coincida con el tipo del argumento (cadena de caracteres, número o fecha).
- Un literal como, por ejemplo, 'Sailboat' (una cadena de caracteres entrecomillada con comillas simples), el número 5 o una fecha con el formato MM/DD/YYYY hh:mm:ss, entrecomillada con comillas simples.
- Si su organización permite consultas SQL no estándar, es necesario marcar los caracteres no ingleses en un literal de cadena de caracteres con N (por ejemplo, N'针叶林').
- Una función que devuelva un valor del tipo adecuado (cadena de caracteres, número o fecha). Por ejemplo, FLOOR(POWER(SAMP_ERR, 0.5)) devuelve el entero más grande que es menor o igual que la raíz cuadrada de SAMP_ERR.
Con fines ilustrativos, los ejemplos de la columna de descripción de las tablas siguientes utilizan mayoritariamente argumentos literales. Puede sustituir un nombre de campo u otra función por estos argumentos.
Funciones de cadena
Función | Descripción |
---|---|
CHAR_LENGTH(cadena de caracteres) | Devuelve el número de caracteres cadena. El resultado es un entero. Ejemplo
|
CONCAT(cadena de caracteres1, cadena de caracteres2) | Concatena dos cadenas de caracteres. Solo se pueden indicar dos cadenas. Para concatenar más de dos cadenas de caracteres, anide CONCAT consecutivas tal como se muestra en el ejemplo siguiente. Ejemplo
Los valores nulos se convierten en cadenas vacías. |
POSITION(subcadena de caracteres en cadena de caracteres) | Devuelve la posición de la primera ocurrencia de subcadena en cadena. Si no se encuentra subcadena, el resultado es 0. Ejemplos
|
SUBSTRING(cadena de caracteres, inicio, longitud) | Devuelve una parte de cadena; inicio es un índice entero que especifica dónde empiezan los caracteres devueltos y longitud es el número de caracteres que se deben devolver. Ejemplo
|
TRIM(BOTH | LEADING | TRAILING ' ' FROMcadena de caracteres) | Devuelve una cadena de caracteres en la que se han eliminado todos los espacios anteriores y posteriores a cadena. Ejemplo
Como se ve, en el segundo argumento hay espacios entre las comillas simples y el texto. |
UPPER(cadena de caracteres) | Devuelve una cadena de caracteres con todos los caracteres de cadena convertidos en mayúsculas. Ejemplo
|
LOWER(cadena de caracteres) | Devuelve una cadena en la que todos los caracteres de cadena están convertidos en minúsculas. Ejemplo
|
Funciones numéricas
Además de las funciones numéricas descritas a continuación, puede calcular estadísticas sobre columnas de datos. Estas estadísticas incluyen el número de registros, el valor mínimo y máximo, la suma de todos los valores, el valor medio y la desviación estándar de todos los valores.
- Haga clic en la columna que contenga el campo con los valores para los que desee obtener estadísticas.
- Haga clic en Estadísticas. Un cuadro de diálogo muestra las estadísticas calculadas.
Función | Descripción |
---|---|
ABS(número) | Devuelve el valor absoluto (positivo) de número. |
CEILING(número) | Devuelve el valor entero más pequeño que es mayor o igual que número. Ejemplo
|
COS(número) | Devuelve el coseno trigonométrico de número, que se asume que es un ángulo en radianes. |
CAST(númeroAS FLOAT | INT) | Convierte un número en otro tipo distinto. FLOAT convierte número en un doble e INT lo convierte en un entero. |
FLOOR(número) | Devuelve el número entero más grande que sea menor o igual que número. Ejemplo
|
LN(número, posición_decimal) | Logaritmo natural de número. |
LOG(número, posición_decimal) | Logaritmo en base 10 de número. |
MOD(número, n) | Devuelve el resto de la división de número por n, Tanto n como número deben ser de tipo entero. Ejemplo
|
NULLIF(número, valor) | Devuelve null si número es igual a valor. NULLIF se suele utilizar para evitar errores de división por cero poniendo valor a 0. Siempre que un campo encuentre un campo con valor null en cualquiera de los argumentos, el resultado del cálculo será null. Por ejemplo, supongamos que necesita calcular un campo doble para que sea TOTALPOP dividido por POP18. Si una función tiene POP18 igual a cero, el cálculo dará como resultado un error de división por cero. Puede crear un filtro para ocultar registros en los que POP18 es igual a cero y realizar su cálculo. Un atajo sería usar NULLIF.
|
POWER(número , y) | Devuelve el valor de número elevado a la potencia y especificada. |
ROUND(número , longitud) | Redondea número a la longitud especificada. Si longitud es un número positivo, el número se redondea a la posición decimal especificada por la longitud. Si longitud es un número negativo, se redondea a la izquierda del punto decimal. Ejemplos
|
SIN(número) | Devuelve el seno trigonométrico de número, que se asume que es un ángulo en radianes. |
TAN(número) | Devuelve la tangente de número, que se asume que es un ángulo en radianes. |
TRUNC(número, posición_decimal) | Trunca número en la posición_decimal especificada. Un valor positivo de posición_decimal trunca el número en la posición decimal especificada. Si posición_decimal es un número negativo, se trunca a la izquierda del punto decimal. Ejemplos
|
Trabajar con campos de fecha
En los campos fecha se pueden realizar varios cálculos. Por ejemplo, puede agregar o restar tiempo de un campo de fecha o calcular la diferencia entre dos campos de fecha.
Funciones de fecha
Están disponibles las siguientes funciones de fecha:
Función | Descripción |
---|---|
CURRENT_DATE | Devuelve la fecha actual en hora UTC. |
CURRENT_DATE | Devuelve la fecha y hora UTC (horas, minutos y segundos) actuales. |
CURRENT_DATE | Devuelve la fecha y hora UTC (horas, minutos, segundos y milisegundos) actuales. |
EXTRACT(unit FROM 'date') | Devuelve una parte de una fecha/hora como, por ejemplo, año, mes, día, hora, minuto, etc. Por ejemplo
|
Calcular campos de fecha
Puede utilizar cualquier combinación de campos de fecha y numéricos y literales para calcular los campos de fecha. Si utiliza literales de fecha, debe utilizar formatos de fecha compatibles con SQL.
Agregar tiempo a una fecha o restar tiempo de una fecha
Puede que desee agregar o restar tiempo de un campo de fecha o un valor literal de fecha compatible con SQL para generar un campo de fecha actualizado. Por ejemplo, puede calcular una fecha de inspección o revisión futura agregando tiempo a una fecha.
Los cálculos siguientes se pueden utilizar para agregar o restar tiempo de un campo de fecha. En el primero se utilizan campos de fecha y en el segundo se utilizan valores literales de fecha. También se pueden utilizar campos numéricos y literales de número. Se admite cualquier combinación de campos y literales, tal y como se muestra en el tercer y cuarto cálculo.<DateField> +/- <NumberField> = updated date
DATE'<SQL-supported Date Literal>' +/- <Number of Days> = updated date
<DateField> +/- <Number of Days> = updated date
DATE'<SQL-supported Date Literal >' +/- <NumberField> = updated date
El campo de fecha calculado es la fecha original más o menos el número de días que desee agregar o restar. El número de días puede ser un número entero y también puede incluir una fracción; por ejemplo, 1,5 representaría un día y medio o 36 horas.
En el ejemplo siguiente, se instaló una pieza de maquinaria el 14/6/2016 a las 10:00 AM. Podría utilizar cualquiera de los cálculos siguientes para generar una fecha de inspección transcurrido un mes (30 días) de esta fecha de instalación. En el primer cálculo se utiliza un campo de fecha con el valor 14/6/2016 y un campo numérico con el valor 30, mientras que en el segundo se utiliza un literal de fecha y un literal de número.<MyDateField> + <MyNumberField> = 7/14/2016 10:00 AM
DATE'6/14/2016' + 30 = 7/14/2016 10:00 AM
Calcular la diferencia entre dos fechas
Puede que desee calcular el tiempo transcurrido entre dos fechas. Por ejemplo, si tiene fechas de instalación para contadores eléctricos y también tiene fechas de inspección, puede calcular la diferencia entre las dos fechas para verificar que el tiempo transcurrido entre la instalación y la inspección queda dentro de unas directrices válidas. El resultado del cálculo es un campo numérico en lugar de un campo de fecha.
Se puede utilizar cualquier combinación de campos de fecha y literales de fecha para calcular el tiempo transcurrido entre dos fechas. En el primer cálculo de abajo se utiliza un campo de fecha, mientras que en el segundo se utiliza un literal de fecha. En el tercer y cuarto cálculo se utiliza un campo de fecha y un literal de fecha.<DateField1> - <DateField2> = number of days in between
DATE'<SQL-supported Date Literal>' - DATE'< SQL-supported Date Literal>' = number of days in between
<DateField1> - DATE'<SQL-supported Date Literal>' = number of days in between
DATE'<SQL-supported Date Literal>' - <DateField2> = number of days in between
El resultado es un campo numérico que se calcula restando un campo/literal de fecha de otro campo/literal de fecha. El resultado del número (en días) puede ser un número entero y también puede incluir una fracción; por ejemplo, 1,5 representaría un día y medio o 36 horas.
En el ejemplo de la inspección de los contadores eléctricos mencionada antes, se puede utilizar cualquiera de los cálculos siguientes para calcular el tiempo transcurrido entre la fecha de instalación del 1/6/2015 y la fecha de inspección del 1/10/2015. En el primer cálculo se utilizan campos de fecha, en el segundo se utilizan literales de fecha y en el tercero y cuarto se utilizan tanto un campo de fecha como un literal de fecha.<InspectionDateField> - <InstallationDateField> = 122 (days)
DATE'10/1/2015' - DATE'6/1/2015' = 122 (days)
<InspectionDateField> - DATE'6/1/2015' = 122 (days)
DATE'10/1/2015' - <InstallationDateField> = 122 (days)
Consideraciones para los campos de fecha
Es importante tener en cuenta la información siguiente al trabajar con campos de fecha.
Cambio del formato de visualización de un campo de fecha
Puede cambiar la forma de visualizar las fechas en la tabla. Las tablas se muestran con el mismo formato configurado para las ventanas emergentes. Puede cambiar el formato de visualización de un campo de fecha seleccionando el alias del campo en la ventana Configurar atributos de Propiedades del elemento emergente.
Introducción de fechas en formato MM/DD/YYYY hh:mm:ss
Independientemente de cómo se muestren las fechas en la tabla, solo puede introducirlas en formato MM/DD/YYYY hh:mm:ss, entrecomilladas entre comillas simples. Por ejemplo, para definir un campo de fecha a las 5:00 PM el 27 de mayo de 2014, debería escribir '27/05/2014 05:00:00PM', '27/05/2014 5:00PM' o '27/05/2014 17:00:00' (reloj de 24 horas). No se puede almacenar solo un valor de tiempo; siempre debe tener un componente de fecha.
Las fechas se almacenan en UTC
El Tiempo coordenado universal (UTC) es prácticamente equivalente a la hora actual en el meridiano base de la Tierra (cero grados de longitud) situado cerca de Greenwich, en Inglaterra. UTC es una versión más precisa de GMT (Hora de Greenwich). Los campos de fechas de las tablas agregadas a su portal como elementos deben contener información de la zona horaria local o deben estar en UTC. Si el campo de fecha contiene información de la zona horaria local, el tiempo local se convierte a UTC antes de almacenarse en la base de datos. Las fechas se convierten a UTC porque la ubicación física del servidor donde se alojan sus datos puede estar en cualquier parte del mundo. La alternativa de almacenar la fecha y la hora en una zona horaria local provocaría todo tipo de problemas, en especial si usted o el servidor donde se almacenan sus datos se mueven a otra zona horaria. Si no se proporciona información de la zona horaria local en las tablas agregadas como elementos, los campos de fecha deben estar en UTC.
Cuando se muestra un campo de fecha en su portal, la fecha se convierte de UTC a su hora local. Esto se hace mediante una consulta a su ordenador para determinar su configuración de zona horaria. Por ejemplo, supongamos que su equipo utiliza la Hora estándar del Pacífico (PST). PST es ocho horas menos que UTC; cuando en UTC son las 9:00 AM, es la 1:00 AM. PST (o 2:00 AM si se está utilizando el horario de verano).
Se asume que cualquier fecha que introduzca en una expresión SQL está en UTC, no en su zona horaria actual. Esta asunción puede dar lugar a confusiones. Por ejemplo, si introduce '27/05/2014 05:00:00PM' en un ordenador que utiliza PST, se mostrará 27/5/2014 9:00 AM debido a la conversión de hora descrita arriba.
Estos son algunos consejos para tener en cuenta la conversión de UTC a su zona horaria local:
- Si necesita escribir su fecha y hora actual, utilice una de las funciones de tiempo siguientes, que siempre devuelven UTC.
- Si escribe una fecha sin componente de hora, agregue 12 horas a la fecha. Por ejemplo, en lugar de escribir '5/27/2014', escriba '5/27/2014 12:00PM' o '5/27/2014 12:00'. El motivo de esta diferencia es que al escribir una fecha sin componente de hora, se introduce como la medianoche de esa fecha (5/27/2014 se convierte en 5/27/2014 00:00:00), y cuando se muestra en su zona horaria local se añaden o quitan horas. Por ejemplo, si está en PST y escribe 27/5/2014, se mostrará 26/5/2014 (7 horas menos que la medianoche del día 27).
- Si va a introducir una fecha sin hora, aplique el desplazamiento de su zona horaria a la hora. Por ejemplo, si necesita introducir 5/27/2014 12 PM PST, aplique la diferencia de 8 horas y escriba '5/27/2014 8:00PM'. Para determinar la diferencia de zona horaria, puede buscar en Internet con una frase como calculadora diferencia hora UTC.
- Para ver el contenido de su campo de fecha en UTC, puede agregar un campo de cadena de caracteres a la tabla y calcularlo para que sea igual que el campo de fecha. La fecha se convertirá en una cadena de caracteres sin diferencia de zona horaria. Esta cadena de caracteres también contiene milisegundos.
Restricciones
- Agregar campo, Eliminar y Calcular solo están disponibles para capas de entidades alojadas y tablas.
- Agregar campo, Eliminar y Calcular no están disponibles para copias de capas ni para las capas de entidades alojadas que tienen capas de teselas relacionadas.
- Agregar campo y Eliminar no están disponibles para vistas de capas de entidades alojadas.
- Eliminar y Calcular no están disponibles para las capas de entidades espaciotemporales alojadas.
- Agregar campo, Eliminar y Calcular no están disponibles para las vistas creadas a partir de capas de entidades espaciotemporales alojadas.
- Eliminar no está disponible para el campo OBJECTID ni para los campos usados para simbología, deslizador de tiempo, filtro, etiquetas o rastreo del editor. No obstante, tenga en cuenta que es posible que otros mapas utilicen campos para su simbología y sus filtros distintos de los campos que utiliza su mapa y que la opción Eliminar esté disponible para esos campos. Tenga cuidado al eliminar campos que se puedan estar usando para la simbología y el filtrado en otros mapas.
- Cuando agrega un campo a una capa de entidades alojada con vistas de capas de entidades alojadas dependientes, debe actualizar la definición de cada vista en la que desee que aparezcan los nuevos campos.
- Calcular solo se admite para campos de tipo cadena de caracteres, entero, doble o fecha.
- Solo se admiten consultas SQL estandarizadas en los cálculos.
- Los cálculos de campo no se pueden deshacer.