Cómo utilizar elenco conversiones de tipos de datos con sql

Idealmente, cada columna de una tabla de base de datos SQL tiene una perfecta elección del tipo de datos. En este mundo no ideal, sin embargo, exactamente lo que la elección perfecta puede ser no siempre es clara. En la definición de una tabla de base, supongamos que se asigna un tipo de datos a una columna que funciona perfectamente para su aplicación actual.

Supongamos que más adelante desea ampliar el alcance de su aplicación - o escribir una aplicación completamente nueva que utiliza los datos de manera diferente. Este nuevo uso podría requerir un tipo de datos diferente a la que eligió originalmente.

Es posible que desee comparar una columna de un tipo en una tabla con una columna de un tipo diferente en una tabla diferente. Por ejemplo, usted podría tener fechas almacenadas como datos de caracteres de una tabla y como datos de fecha en otra mesa.

Incluso si las dos columnas contienen el mismo tipo de información (fechas, por ejemplo), el hecho de que los tipos son diferentes puede impedir que hacer la comparación. En los primeros estándares SQL, SQL-86 y SQL-89, el tipo de incompatibilidad plantea un gran problema. SQL-92, sin embargo, presentó una solución fácil de usar en el EMITIR expresión.

los EMITIR expresión convierte datos de la tabla o variables de host de un tipo a otro tipo. Después de realizar la conversión, se puede proceder con la operación o análisis que usted previo originalmente.

Naturalmente, se enfrenta a algunas restricciones cuando se utiliza el EMITIR expresión. No se puede simplemente indiscriminadamente convertir los datos de cualquier tipo en cualquier otro tipo. Los datos que se va a convertir debe ser compatible con el nuevo tipo de datos. Puede, por ejemplo, utilizar EMITIR para convertir el CHAR (10) cadena de caracteres ‘2007-04-26’ al FECHA tipo.

Pero no se puede utilizar EMITIR para convertir el CHAR (10) cadena de caracteres `rinoceronte` al FECHA tipo. No se puede convertir una ENTERO al SMALLINT tipo si el primero sea superior al tamaño máximo de una SMALLINT.

Puede convertir un objeto de cualquier tipo de carácter a cualquier otro tipo (por ejemplo, numérico o de fecha) proporcionado el valor del artículo tiene la forma de un literal del nuevo tipo. Por el contrario, puede convertir un elemento de cualquier tipo a cualquiera de los tipos de caracteres, siempre que el valor del elemento tiene la forma de un literal del tipo original.

La siguiente lista describe algunas conversiones adicionales que puede realizar:

Cualquier tipo numérico a cualquier otro tipo numérico. Si la conversión a un tipo menos fraccionalmente precisa, las rondas del sistema o trunca el resultado.

  • Cualquier tipo numérico exacto a un solo intervalo de componente, tal como INTERVALO DE DÍA o Intervalo del segundo.

    Video: ★Tipos de Datos en SQL Server Management Studio

  • Alguna FECHA a una TIMESTAMP. La parte del tiempo TIMESTAMP rellena con ceros.

  • Alguna HORA a una HORA con una precisión de fracciones de segundos diferente o una TIMESTAMP. La parte de la fecha de la TIMESTAMP rellena con la fecha actual.

  • Alguna TIMESTAMP a una FECHA, un HORA, o una TIMESTAMP con una precisión de fracciones de segundos diferente.

  • Cualquier año-mes INTERVALO a un tipo numérico exacto o un año-mes INTERVALO con distinta precisión de campo líder.

  • Cada Tiempo día INTERVALO a un tipo numérico exacto u otra de día INTERVALO con distinta precisión de campo líder.

  • Cómo utilizar REPARTO dentro de SQL

    Supongamos que usted trabaja para una empresa que realiza un seguimiento de los posibles empleados, así como los empleados que realmente hemos contratado. Usted enumera los posibles empleados en una tabla llamada PERSPECTIVA, y que las distinguen por su número de la Seguridad Social, lo que le sucede a almacenar como una CHAR (9) tipo.

    Usted enumera los empleados en una tabla llamada EMPLEADO, y que las distinguen por su número de la Seguridad Social, que son de la ENTERO tipo. Ahora desea generar una lista de todas las personas que aparecen en las dos tablas. Puedes usar EMITIR para llevar a cabo la tarea:

    SELECT * FROM EMPLOYEEWHERE EMPLOYEE.SSN = CAST (PROSPECT.SSN AS INTEGER) -

    Cómo utilizar REPARTO entre SQL y la lengua de acogida

    El uso de la clave EMITIR es para hacer frente a los tipos de datos que están disponibles en SQL, pero no en el lenguaje principal que se utiliza. La siguiente lista ofrece algunos ejemplos de estos tipos de datos:

    • SQL tiene DECIMAL y NUMÉRICO, pero FORTRAN y Pascal no lo hacen.

    • SQL tiene FLOTADOR y REAL, pero COBOL estándar no lo hace.

    • SQL tiene FECHA Y HORA, que ningún otro idioma tiene.

      Video: 5. MySQL Avanzado - Tipos de datos numéricos

    Suponga que desea utilizar FORTRAN o Pascal para tablas de acceso con DECIMAL (5,3) columnas, y que no quieren cualquier inexactitud que resultan de la conversión de los valores de la REAL tipo de datos utilizado por FORTRAN y Pascal. Puede realizar esta tarea mediante el uso de EMITIR para mover los datos hacia y desde las variables de tipo carácter de cadena.

    Video: Crear tipos de datos en SQL server

    Se recupera un salario de 198,37 numérica como CHAR (10) valor de ‘0.000.198,37’. Entonces, si quiere actualizar ese sueldo a 203.74, puede colocar ese valor en una CHAR (10) como ‘0.000.203,74’. En primer lugar se utiliza EMITIR para cambiar el SQL DECIMAL (5,3) tipo de datos a la CHAR (10) tipo de registro del empleado cuyo número de identificación se está almacenando en la variable de acogida : emp_id_var, como sigue:

    SELECT CAST (salario como CHAR (10)) INTO: salary_varFROM EMPWHERE EmpID =: emp_id_var -

    La aplicación de FORTRAN o Pascal examina el valor de cadena de caracteres que resulta en : salary_var, posiblemente establece la cadena de valor de una nueva ‘000.203,74’, y luego actualiza la base de datos llamando al siguiente código SQL:

    ACTUALIZACIÓN EMPSET Salario = CAST (: salary_var como un decimal (5,3)) donde EmpID =: emp_id_var -

    Tratar con los valores de serie de caracteres tales como ‘000.198,37’ es torpe en FORTRAN o Pascal, pero se puede escribir un conjunto de subrutinas para hacer las manipulaciones necesarias. A continuación, puede recuperar y actualizar datos SQL desde cualquier lengua de acogida, y obtener - - y establecer valores exactos.

    La idea general es que EMITIR es más valioso para la conversión entre tipos de host y la base de datos en vez de para la conversión dentro de la base de datos.

    Artículos Relacionados