{"id":15974,"date":"2024-07-25T12:10:56","date_gmt":"2024-07-25T08:40:56","guid":{"rendered":"https:\/\/www.itpiran.net\/blog\/?p=15974"},"modified":"2024-07-25T12:10:56","modified_gmt":"2024-07-25T08:40:56","slug":"how-to-work-with-dates-and-times-in-sql","status":"publish","type":"post","link":"https:\/\/www.itpiran.net\/blog\/es\/tutorials\/how-to-work-with-dates-and-times-in-sql\/","title":{"rendered":"C\u00f3mo trabajar con fechas y horas en SQL"},"content":{"rendered":"<h2 id=\"%d9%85%d9%82%d8%af%d9%85%d9%87\">Introducci\u00f3n<\/h2>\n<p>Al trabajar con bases de datos relacionales y lenguaje de consulta estructurado (SQL), puede que necesite trabajar con valores que representan fechas u horas espec\u00edficas. Por ejemplo, podr\u00eda necesitar calcular el total de horas dedicadas a una actividad espec\u00edfica, o quiz\u00e1s agregar valores de fecha u hora mediante operadores y funciones matem\u00e1ticas para calcular su suma o promedio.<\/p>\n<p>En este tutorial, aprender\u00e1 a usar fechas y horas en SQL. Comenzar\u00e1 realizando c\u00e1lculos y usando diversas funciones con fechas y horas usando solo la instrucci\u00f3n SELECT. Despu\u00e9s, practicar\u00e1 ejecutando consultas con datos de ejemplo y aprender\u00e1 a implementar la funci\u00f3n CAST para que la salida sea m\u00e1s legible.<\/p>\n<h5 id=\"%d9%be%db%8c%d8%b4-%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7\">Requisitos previos<\/h5>\n<p>Para completar este tutorial, necesitar\u00e1s:<\/p>\n<ul>\n<li>Un servidor que ejecuta Ubuntu 20.04, con un usuario no root con privilegios administrativos de sudo y un firewall habilitado.<\/li>\n<li>MySQL est\u00e1 instalado y protegido en el servidor.<\/li>\n<\/ul>\n<p><span style=\"color: #ff0000;\">Nota: Tenga en cuenta que muchos sistemas de gesti\u00f3n de bases de datos relacionales utilizan sus propias implementaciones de SQL. Aunque los comandos mencionados en este tutorial funcionan en la mayor\u00eda de los RDBMS, la sintaxis o el resultado exactos pueden variar si los prueba en un sistema distinto de MySQL.<\/span><\/p>\n<p>Para practicar el uso de fechas y horas en este tutorial, necesitar\u00e1 una base de datos y una tabla con datos de ejemplo. Si no tiene una lista para insertar, puede leer la secci\u00f3n &quot;Conectarse a MySQL y Configurar una Base de Datos de Ejemplo&quot; para aprender a crear una base de datos y una tabla. Este tutorial har\u00e1 referencia a esta base de datos y tabla de ejemplo en todo momento.<\/p>\n<h2 id=\"%d8%a7%d8%aa%d8%b5%d8%a7%d9%84-%d8%a8%d9%87-mysql-%d9%88-%d8%b1%d8%a7%d9%87-%d8%a7%d9%86%d8%af%d8%a7%d8%b2%db%8c-%db%8c%da%a9-%d9%be%d8%a7%db%8c%da%af%d8%a7%d9%87-%d8%af%d8%a7%d8%af%d9%87-%d9%86%d9%85\">Conexi\u00f3n a MySQL y configuraci\u00f3n de una base de datos de ejemplo<\/h2>\n<p>Si su base de datos SQL se ejecuta en un servidor remoto, acceda a su servidor mediante SSH desde su m\u00e1quina local:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>ssh sammy@your_server_ip\r\n<\/code><\/pre>\n<\/div>\n<p>Luego, abra el s\u00edmbolo del sistema de MySQL y reemplace Sami con la informaci\u00f3n de su cuenta MySQL:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>mysql -u sammy -p\r\n<\/code><\/pre>\n<\/div>\n<p>Crea una base de datos llamada datetimeDB:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>CREATE DATABASE datetimeDB;\r\n<\/code><\/pre>\n<\/div>\n<p>Si la base de datos se crea correctamente, recibir\u00e1 el siguiente resultado:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nQuery OK, 1 row affected (0.01 sec)<\/code><\/pre>\n<\/div>\n<p>Para seleccionar la base de datos datetimeDB, ejecute la siguiente declaraci\u00f3n USE:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>USE datetimeDB;\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nDatabase changed<\/code><\/pre>\n<\/div>\n<p>Tras seleccionar la base de datos, cree una tabla dentro de ella. En este tutorial, crearemos una tabla que contenga los resultados de dos corredores en diferentes carreras que han corrido a lo largo de un a\u00f1o. Esta tabla tiene las siguientes siete columnas:<\/p>\n<ul>\n<li>race_id: Representa valores de tipo de datos int y act\u00faa como clave principal de la tabla, lo que significa que cada valor de esta columna act\u00faa como un identificador \u00fanico para la fila correspondiente.<\/li>\n<li>runner_name: utiliza el tipo de datos varchar con un m\u00e1ximo de 30 caracteres para los nombres de los dos corredores Bolt y Felix.<\/li>\n<li>race_name: contiene tipos de carrera con tipo de datos varchar de hasta 20 caracteres.<\/li>\n<li>start_day: Utiliza el tipo de dato DATE para rastrear la fecha de una coincidencia espec\u00edfica seg\u00fan el a\u00f1o, mes y d\u00eda. Este tipo de dato cumple con los siguientes par\u00e1metros: cuatro d\u00edgitos para el a\u00f1o y un m\u00e1ximo de dos d\u00edgitos para el mes y el d\u00eda (AAAA-MM-DD).<\/li>\n<li>start_time: Representa la hora de inicio del partido con el tipo de dato TIME en horas, minutos y segundos (HH:MM:SS). Este tipo de dato sigue el formato de 24 horas, por ejemplo, 15:00 para el equivalente a las 15:00.<\/li>\n<li>total_miles: Muestra el kilometraje total de cada carrera utilizando el tipo de dato decimal, ya que muchos de los kil\u00f3metros totales por carrera no son n\u00fameros enteros. En este caso, el decimal especifica una precisi\u00f3n de tres con una escala de uno, lo que significa que cada valor de esta columna puede tener tres d\u00edgitos, uno de los cuales debe estar a la derecha de la coma decimal.<\/li>\n<li>end_time: Utiliza el tipo de dato TIMESTAMP para registrar el tiempo de los corredores al final de la carrera. Este tipo de dato combina la fecha y la hora en una cadena, y su formato es una combinaci\u00f3n de FECHA y HORA: (AAAA-MM-DD HH:MM:SS).<\/li>\n<\/ul>\n<p>Cree la tabla ejecutando el comando CREATE TABLE:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>CREATE TABLE race_results (\r\nrace_id int, \r\nrunner_name varchar(30),\r\nrace_name varchar(20), \r\nstart_day DATE,\r\nstart_time TIME, \r\ntotal_miles decimal(3, 1),\r\nend_time TIMESTAMP,\r\nPRIMARY KEY (race_id)\r\n); <\/code><\/pre>\n<\/div>\n<p>A continuaci\u00f3n, introduzca algunos datos de muestra en la tabla vac\u00eda:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>INSERT INTO race_results\r\n(race_id, runner_name, race_name, start_day, start_time, total_miles, end_time)\r\nVALUES\r\n(1, 'bolt', '1600_meters', '2022-09-18', '7:00:00', 1.0, '2022-09-18 7:06:30'),\r\n(2, 'bolt', '5K', '2022-10-19', '11:00:00', 3.1, '2022-10-19 11:22:31'),\r\n(3, 'bolt', '10K', '2022-11-20', '10:00:00', 6.2, '2022-11-20 10:38:05'),\r\n(4, 'bolt', 'half_marathon', '2022-12-21', '6:00:00', 13.1, '2022-12-21 07:39:04'),\r\n(5, 'bolt', 'full_marathon', '2023-01-22', '8:00:00', 26.2, '2023-01-22 11:23:10'),\r\n(6, 'felix', '1600_meters', '2022-09-18', '7:00:00', 1.0, '2022-09-18 7:07:15'),\r\n(7, 'felix', '5K', '2022-10-19', '11:00:00', 3.1, '2022-10-19 11:30:50'),\r\n(8, 'felix', '10K', '2022-11-20', '10:00:00', 6.2, '2022-11-20 11:10:17'),\r\n(9, 'felix', 'half_marathon', '2022-12-21', '6:00:00', 13.1, '2022-12-21 08:11:57'),\r\n(10, 'felix', 'full_marathon', '2023-01-22', '8:00:00', 26.2, '2023-01-22 12:02:10');<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nQuery OK, 10 rows affected (0.00 sec)\r\nRecords: 10 Duplicates: 0 Warnings: 0<\/code><\/pre>\n<\/div>\n<p>Una vez que haya ingresado los datos, estar\u00e1 listo para comenzar a practicar aritm\u00e9tica y funciones con fechas y horas en SQL.<\/p>\n<h2 id=\"%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-%d8%ad%d8%b3%d8%a7%d8%a8-%d8%a8%d8%a7-%d8%aa%d8%a7%d8%b1%db%8c%d8%ae-%d9%88-%d8%b2%d9%85%d8%a7%d9%86\">Usando la cuenta con fecha y hora<\/h2>\n<p>En SQL, se pueden manipular valores de fecha y hora mediante expresiones matem\u00e1ticas. Solo se necesita un operador matem\u00e1tico y los valores que se desean calcular.<\/p>\n<p>Por ejemplo, supongamos que desea encontrar una fecha con un n\u00famero espec\u00edfico de d\u00edas de diferencia. La siguiente consulta toma un valor de fecha (2022-10-05) y le suma 17 para devolver un valor de fecha diecisiete d\u00edas posterior a la fecha especificada en la consulta. Tenga en cuenta que este ejemplo especifica 2022-10-05 como valor de FECHA para garantizar que el SGBD no lo interprete como una cadena u otro tipo de dato:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT DATE '2022-10-05' + 17 AS new_date;\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+----------+\r\n| new_date |\r\n+----------+\r\n| 20221022 |\r\n+----------+\r\n1 row in set (0.01 sec)<\/code><\/pre>\n<\/div>\n<p>Como muestra este resultado, 17 d\u00edas despu\u00e9s del 5 de octubre de 2022 es el 22 de octubre de 2022, o el 22 de octubre de 2022.<\/p>\n<p>Como otro ejemplo, supongamos que desea calcular el total de horas entre dos horas diferentes. Puede hacerlo restando dos horas entre s\u00ed. Para la siguiente consulta, 11:00 es el primer valor de hora y 3:00 es el segundo. Aqu\u00ed debe especificar que ambos valores son de tipo HORA para obtener la diferencia en horas:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT TIME '11:00' - TIME '3:00' AS time_diff;\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-----------+\r\n| time_diff |\r\n+-----------+\r\n| 80000 |\r\n+-----------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Esta salida le indica que la diferencia entre las 11:00 y las 3:00 es de 80.000, u 8 horas.<\/p>\n<p>Ahora practique el uso de c\u00e1lculos con la informaci\u00f3n de fecha y hora de los datos de ejemplo. Para la primera consulta, calcule el tiempo total que tardaron los corredores en completar cada carrera restando end_time de start_time:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT runner_name, race_name, end_time - start_time \r\nAS total_time \r\nFROM race_results;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------+---------------+----------------+\r\n| runner_name | race_name | total_time |\r\n+-------------+---------------+----------------+\r\n| bolt | 1600_meters | 20220918000630 |\r\n| bolt | 5K | 20221019002231 |\r\n| bolt | 10K | 20221120003805 |\r\n| bolt | half_marathon | 20221221013904 |\r\n| bolt | full_marathon | 20230122032310 |\r\n| felix | 1600_meters | 20220918000715 |\r\n| felix | 5K | 20221019003050 |\r\n| felix | 10K | 20221120011017 |\r\n| felix | half_marathon | 20221221021157 |\r\n| felix | full_marathon | 20230122040210 |\r\n+-------------+---------------+----------------+\r\n10 rows in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Observar\u00e1 que la salida de la columna &quot;tiempo_total&quot; es bastante larga y dif\u00edcil de leer. A continuaci\u00f3n, le mostraremos c\u00f3mo usar la funci\u00f3n CAST para transformar estos valores de datos y que sean m\u00e1s f\u00e1ciles de leer.<\/p>\n<p>Ahora bien, si solo le interesa el rendimiento de cada corredor en carreras m\u00e1s largas, como medias maratones y maratones, podr\u00eda consultar sus datos para obtener esa informaci\u00f3n. Para esta consulta, reste end_time de start_time y limite los resultados mediante una cl\u00e1usula WHERE para recuperar los datos donde total_miles sea mayor que 12:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT runner_name, race_name, end_time - start_time AS half_full_results\r\nFROM race_results \r\nWHERE total_miles &gt; 12;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------+---------------+-------------------+\r\n| runner_name | race_name | half_full_results |\r\n+-------------+---------------+-------------------+\r\n| bolt | half_marathon | 20221221013904 |\r\n| bolt | full_marathon | 20230122032310 |\r\n| felix | half_marathon | 20221221021157 |\r\n| felix | full_marathon | 20230122040210 |\r\n+-------------+---------------+-------------------+\r\n4 rows in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>En esta secci\u00f3n, realiz\u00f3 c\u00e1lculos de fecha y hora con la instrucci\u00f3n SELECT y, con fines pr\u00e1cticos, con datos de ejemplo. A continuaci\u00f3n, practicar\u00e1 consultas con diversas funciones de fecha y hora.<\/p>\n<h2 id=\"%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-%d8%aa%d9%88%d8%a7%d8%a8%d8%b9-%d8%aa%d8%a7%d8%b1%db%8c%d8%ae-%d9%88-%d8%b2%d9%85%d8%a7%d9%86-%d9%88-%d8%b9%d8%a8%d8%a7%d8%b1%d8%a7%d8%aa-%d8%a8\">Uso de funciones de fecha y hora y expresiones de rango<\/h2>\n<p>Existen varias funciones que permiten buscar y manipular valores de fecha y hora en SQL. Estas funciones se utilizan normalmente para procesar o manipular datos, y las funciones disponibles dependen de la implementaci\u00f3n de SQL. Sin embargo, la mayor\u00eda de las implementaciones de SQL permiten buscar la fecha y hora actuales consultando los valores current_date y current_time.<\/p>\n<p>Para encontrar la fecha de hoy, por ejemplo, la sintaxis es corta y consta solo de la declaraci\u00f3n SELECT y la funci\u00f3n current_date, as\u00ed:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_date;\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+--------------+\r\n| current_date |\r\n+--------------+\r\n| 2022-02-15 |\r\n+--------------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Usando la misma sintaxis, puedes encontrar la hora actual con la funci\u00f3n current_time:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_time;\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+--------------+\r\n| current_time |\r\n+--------------+\r\n| 17:10:20 |\r\n+--------------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Si prefiere consultar la fecha y la hora en la salida, utilice la funci\u00f3n current_timestamp:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_timestamp;\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+---------------------+\r\n| current_timestamp |\r\n+---------------------+\r\n| 2022-02-15 19:09:58 |\r\n+---------------------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Puedes usar funciones de fecha y hora como estas en funciones aritm\u00e9ticas similares a las de la secci\u00f3n anterior. Por ejemplo, supongamos que quieres saber qu\u00e9 fecha era hace 11 d\u00edas a partir de hoy. En este caso, puedes usar la misma sintaxis que usaste para consultar la funci\u00f3n current_date y luego restarle 11 para encontrar la fecha de hace once d\u00edas:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_date - 11;\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------------+\r\n| current_date - 11 |\r\n+-------------------+\r\n| 20220206 |\r\n+-------------------+\r\n1 row in set (0.01 sec)<\/code><\/pre>\n<\/div>\n<p>Como muestra este resultado, 11 d\u00edas antes de current_date (al momento de escribir este art\u00edculo) era 2022-02-06, o 6 de febrero de 2022. Ahora intente la misma operaci\u00f3n, pero reemplace current_date con la funci\u00f3n current_time:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_time - 11;\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------------+\r\n| current_time - 11 |\r\n+-------------------+\r\n| 233639 |\r\n+-------------------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Este resultado muestra que al restar 11 del valor current_time, se restan 11 segundos. La operaci\u00f3n realizada anteriormente con la funci\u00f3n current_date interpret\u00f3 11 como d\u00edas, no segundos. Esta inconsistencia en la interpretaci\u00f3n de los n\u00fameros puede resultar confusa al trabajar con funciones de fecha y hora. En lugar de obligarle a manipular valores de fecha y hora con c\u00e1lculos como este, muchos sistemas de gesti\u00f3n de bases de datos permiten ser m\u00e1s expl\u00edcitos mediante el uso de sentencias INTERVAL.<\/p>\n<p>Las expresiones INTERVAL permiten especificar una fecha u hora anterior o posterior a un intervalo de tiempo especificado a partir de una expresi\u00f3n de fecha u hora. Deben tener el siguiente formato:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>INTERVAL value unit\r\n<\/code><\/pre>\n<\/div>\n<p>Por ejemplo, para encontrar la fecha dentro de cinco d\u00edas, puede ejecutar la siguiente consulta:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_date + INTERVAL '5' DAY AS \"5_days_from_today\";\r\n<\/code><\/pre>\n<\/div>\n<p>Este ejemplo encuentra el valor de current_date y le a\u00f1ade la expresi\u00f3n de intervalo INTERVAL &#039;5&#039; DAY. Esto devuelve la fecha 5 d\u00edas despu\u00e9s:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------------+\r\n| 5_days_from_today |\r\n+-------------------+\r\n| 2022-03-06 |\r\n+-------------------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Esto es mucho menos ambiguo que la siguiente consulta, que produce un resultado similar, aunque no id\u00e9ntico:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_date + 5 AS \"5_days_from_today\";\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------------+\r\n| 5_days_from_today |\r\n+-------------------+\r\n| 20220306 |\r\n+-------------------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Tenga en cuenta que puede restar intervalos de tiempo de fechas u horas para encontrar valores anteriores a un valor de fecha espec\u00edfico:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_date - INTERVAL '7' MONTH AS \"7_months_ago\";\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+--------------+\r\n| 7_months_ago |\r\n+--------------+\r\n| 2021-08-01 |\r\n+--------------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Las unidades disponibles para usar en las instrucciones INTERVAL dependen de su elecci\u00f3n de DBMS, aunque la mayor\u00eda tendr\u00e1 opciones como HORA, MINUTO y SEGUNDO:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_time + INTERVAL '6' HOUR AS \"6_hours_from_now\",\r\ncurrent_time - INTERVAL '5' MINUTE AS \"5_minutes_ago\",\r\ncurrent_time + INTERVAL '20' SECOND AS \"20_seconds_from_now\";<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+------------------+---------------+---------------------+\r\n| 6_hours_from_now | 5_minutes_ago | 20_seconds_from_now |\r\n+------------------+---------------+---------------------+\r\n| 07:51:43 | 01:46:43 | 01:52:03.000000 |\r\n+------------------+---------------+---------------------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Ahora que ha aprendido sobre expresiones de intervalo y algunas funciones de fecha y hora, contin\u00fae practicando el trabajo con los datos de muestra que ingres\u00f3 en el primer paso.<\/p>\n<h2 id=\"%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-%d8%aa%d9%88%d8%a7%d8%a8%d8%b9-cast-%d9%88-aggregate-%d8%a8%d8%a7-%d8%aa%d8%a7%d8%b1%db%8c%d8%ae-%d9%88-%d8%b2%d9%85%d8%a7%d9%86\">Uso de las funciones CAST y Agregado con fechas y horas<\/h2>\n<p>Recuerde el tercer ejemplo de la secci\u00f3n &quot;Uso de aritm\u00e9tica con fechas y horas&quot;, donde ejecut\u00f3 la siguiente consulta para restar end_time de start_time y calcular el total de horas que cada corredor corri\u00f3 en cada carrera. Sin embargo, el resultado gener\u00f3 una columna con una salida muy larga que segu\u00eda el tipo de datos TIMESTAMP establecido en la tabla:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT runner_name, race_name, end_time - start_time \r\nAS total_time \r\nFROM race_results;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------+---------------+----------------+\r\n| runner_name | race_name | total_time |\r\n+-------------+---------------+----------------+\r\n| bolt | 1600_meters | 20220918000630 |\r\n| bolt | 5K | 20221019002231 |\r\n| bolt | 10K | 20221120003805 |\r\n| bolt | half_marathon | 20221221013904 |\r\n| bolt | full_marathon | 20230122032310 |\r\n| felix | 1600_meters | 20220918000715 |\r\n| felix | 5K | 20221019003050 |\r\n| felix | 10K | 20221120011017 |\r\n| felix | half_marathon | 20221221021157 |\r\n| felix | full_marathon | 20230122040210 |\r\n+-------------+---------------+----------------+\r\n10 rows in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Dado que se est\u00e1 realizando una operaci\u00f3n en dos columnas con tipos de datos diferentes (end_time contiene valores TIMESTAMP y start_time contiene valores TIME), la base de datos no sabe qu\u00e9 tipo de dato usar al imprimir el resultado de la operaci\u00f3n. En su lugar, convierte ambos valores a enteros para realizar la operaci\u00f3n, lo que genera n\u00fameros largos en la columna total_time.<\/p>\n<p>Para facilitar la lectura e interpretaci\u00f3n de estos datos, puede usar la funci\u00f3n CAST para convertir estos valores enteros largos al tipo de dato TIME. Para ello, comience con CAST e inmediatamente despu\u00e9s, a\u00f1ada un par\u00e9ntesis de apertura, los valores que desea convertir y, a continuaci\u00f3n, la palabra clave AS y el tipo de dato al que desea convertirlos.<\/p>\n<p>La siguiente consulta es id\u00e9ntica al ejemplo anterior, pero utiliza una funci\u00f3n CAST para convertir la columna total_time a un tipo de datos de tiempo:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT runner_name, race_name, CAST(end_time - start_time AS time)\r\nAS total_time \r\nFROM race_results;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------+---------------+------------+\r\n| runner_name | race_name | total_time |\r\n+-------------+---------------+------------+\r\n| bolt | 1600_meters | 00:06:30 |\r\n| bolt | 5K | 00:22:31 |\r\n| bolt | 10K | 00:38:05 |\r\n| bolt | half_marathon | 01:39:04 |\r\n| bolt | full_marathon | 03:23:10 |\r\n| felix | 1600_meters | 00:07:15 |\r\n| felix | 5K | 00:30:50 |\r\n| felix | 10K | 01:10:17 |\r\n| felix | half_marathon | 02:11:57 |\r\n| felix | full_marathon | 04:02:10 |\r\n+-------------+---------------+------------+\r\n10 rows in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>CAST convirti\u00f3 los valores de datos en esta salida a TIEMPO, lo que la hace muy f\u00e1cil de leer y comprender.<\/p>\n<p>Ahora, usemos algunas funciones agregadas en combinaci\u00f3n con la funci\u00f3n CAST para encontrar el tiempo m\u00e1s corto, m\u00e1s largo y total de los resultados de cada corredor. Primero, busque el tiempo m\u00ednimo (o m\u00e1s corto) con la funci\u00f3n MIN. Nuevamente, para mayor claridad, use CAST para convertir los valores de TIMESTAMP a TIME. Tenga en cuenta que al usar dos funciones, como en este ejemplo, se requieren dos pares de par\u00e9ntesis, y el c\u00e1lculo del total de horas (fin_hora - inicio_hora) debe colocarse en uno de ellos. Finalmente, agregue una cl\u00e1usula GROUP BY para organizar estos valores por la columna runner_name y mostrar los resultados de la carrera del corredor:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT runner_name, MIN(CAST(end_time - start_time AS time)) AS min_time\r\nFROM race_results GROUP BY runner_name;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------+----------+\r\n| runner_name | min_time |\r\n+-------------+----------+\r\n| bolt | 00:06:30 |\r\n| felix | 00:07:15 |\r\n+-------------+----------+\r\n2 rows in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Esta salida muestra el tiempo m\u00e1s corto del corredor, en este caso al menos seis minutos y 30 segundos para Bolt y siete minutos y 15 segundos para Felix.<\/p>\n<p>A continuaci\u00f3n, encuentre el tiempo de ejecuci\u00f3n m\u00e1s largo para cada ejecutor. Puede usar la misma sintaxis que en la instrucci\u00f3n anterior, pero esta vez reemplace MIN por MAX:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT runner_name, MAX(CAST(end_time - start_time AS time)) AS max_time\r\nFROM race_results GROUP BY runner_name;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------+----------+\r\n| runner_name | max_time |\r\n+-------------+----------+\r\n| bolt | 03:23:10 |\r\n| felix | 04:02:10 |\r\n+-------------+----------+\r\n2 rows in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Este resultado indica que el tiempo de carrera m\u00e1s largo de Bolt fue de tres horas, 23 minutos y 10 segundos, y el de Felix, de cuatro horas, dos minutos y 10 segundos.<\/p>\n<p>Ahora, busquemos informaci\u00f3n general sobre el total de horas que cada corredor dedic\u00f3 a correr. Para esta consulta, combine la funci\u00f3n SUM para calcular el total de horas seg\u00fan end_time - start_time y use CAST para convertir esos valores a TIME. No olvide agregar GROUP BY para organizar los resultados de cada corredor:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT runner_name, SUM(CAST(end_time - start_time AS time))\r\nAS total_hours FROM race_results GROUP BY runner_name;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------+-------------+\r\n| runner_name | total_hours |\r\n+-------------+-------------+\r\n| bolt | 52880 |\r\n| felix | 76149 |\r\n+-------------+-------------+\r\n2 rows in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Curiosamente, este resultado muestra que MySQL interpreta el tiempo total como un entero. Si leemos estos resultados como tiempos, el tiempo total de Bolt se dividir\u00eda en cinco horas, 28 minutos y 80 segundos. Y el tiempo de Felix se dividir\u00eda en siete horas, 61 minutos y 49 segundos. Como puede observar, esto no es un desglose l\u00f3gico del tiempo, lo que indica que se calcula como un entero y no como tiempo. Por ejemplo, si intenta esto en un SGBD diferente, como PostgreSQL, la misma consulta se ver\u00eda ligeramente diferente:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>SELECT runner_name, SUM(CAST(end_time - start_time AS time))\r\nAS total_hours FROM race_results GROUP BY runner_name;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nrunner_name | total_hours\r\n-------------+-------------\r\nfelix | 10:01:44\r\nbolt | 06:09:20\r\n(2 rows)<\/code><\/pre>\n<\/div>\n<p>En este caso, la consulta en PostgreSQL interpreta los valores como horas y los calcula como tales, de modo que los resultados de Felix se desglosan en un total de 10 horas, un minuto y 44 segundos. Y los de Bolt son seis horas, nueve minutos y 20 segundos. Este es un ejemplo de c\u00f3mo diferentes implementaciones de DBMS pueden interpretar los valores de los datos de forma diferente, incluso utilizando la misma consulta y el mismo conjunto de datos.<\/p>\n<h2 id=\"%d9%86%d8%aa%db%8c%d8%ac%d9%87\">Resultado<\/h2>\n<p>Comprender c\u00f3mo usar fechas y horas en SQL es \u00fatil al buscar resultados espec\u00edficos como minutos, segundos, horas, d\u00edas, meses, a\u00f1os o una combinaci\u00f3n de todos ellos. Adem\u00e1s, existen numerosas funciones para fechas y horas que facilitan la b\u00fasqueda de valores espec\u00edficos, como la fecha u hora actual. Si bien este tutorial solo cubre c\u00e1lculos de suma y resta de fechas y horas en SQL, puede usar valores de fecha y hora con cualquier expresi\u00f3n matem\u00e1tica. Obtenga m\u00e1s informaci\u00f3n en nuestra gu\u00eda de expresiones matem\u00e1ticas y funciones de suma y pru\u00e9belas en sus b\u00fasquedas de fecha y hora.<\/p>","protected":false},"excerpt":{"rendered":"Introducci\u00f3n Al trabajar con bases de datos relacionales y el lenguaje de consulta estructurado (SQL), es posible que\u2026","protected":false},"author":1,"featured_media":15975,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_focuskeywords":"","_yoast_wpseo_primary_category":"193","footnotes":""},"categories":[193,349],"tags":[403,391],"class_list":{"0":"post-15974","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-tutorials","8":"category-database","9":"tag-data-base","10":"tag-mysql"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL - \u0628\u0644\u0627\u06af ITPiran<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.itpiran.net\/blog\/es\/tutorials\/how-to-work-with-dates-and-times-in-sql\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL - \u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"og:description\" content=\"\u0645\u0642\u062f\u0645\u0647 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u067e\u0627\u06cc\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0631\u0627\u0628\u0637\u0647 \u0627\u06cc \u0648 \u0632\u0628\u0627\u0646 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0633\u0627\u062e\u062a\u0627\u0631\u06cc\u0627\u0641\u062a\u0647 (SQL)\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.itpiran.net\/blog\/es\/tutorials\/how-to-work-with-dates-and-times-in-sql\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-25T08:40:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.itpiran.net\/2024\/07\/25111554\/SQL-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1793\" \/>\n\t<meta property=\"og:image:height\" content=\"1110\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\"},\"headline\":\"\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL\",\"datePublished\":\"2024-07-25T08:40:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/\"},\"wordCount\":182,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/25111554\\\/SQL-1.jpg\",\"keywords\":[\"data base\",\"MySQL\"],\"articleSection\":[\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/\",\"name\":\"\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL - \u0628\u0644\u0627\u06af ITPiran\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/25111554\\\/SQL-1.jpg\",\"datePublished\":\"2024-07-25T08:40:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/25111554\\\/SQL-1.jpg\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/25111554\\\/SQL-1.jpg\",\"width\":1793,\"height\":1110},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/category\\\/tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"name\":\"\u0628\u0644\u0627\u06af ITPiran\",\"description\":\"\u0627\u062e\u0628\u0627\u0631 \u0648 \u0645\u0642\u0627\u0644\u0627\u062a \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\",\"name\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"alternateName\":\"ITPIran Blog\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"width\":512,\"height\":512,\"caption\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\",\"name\":\"admin\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/es\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C\u00f3mo trabajar con fechas y horas en SQL - Blog de ITPiran","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.itpiran.net\/blog\/es\/tutorials\/how-to-work-with-dates-and-times-in-sql\/","og_locale":"es_ES","og_type":"article","og_title":"\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL - \u0628\u0644\u0627\u06af ITPiran","og_description":"\u0645\u0642\u062f\u0645\u0647 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u067e\u0627\u06cc\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0631\u0627\u0628\u0637\u0647 \u0627\u06cc \u0648 \u0632\u0628\u0627\u0646 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0633\u0627\u062e\u062a\u0627\u0631\u06cc\u0627\u0641\u062a\u0647 (SQL)\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a&hellip;","og_url":"https:\/\/www.itpiran.net\/blog\/es\/tutorials\/how-to-work-with-dates-and-times-in-sql\/","og_site_name":"\u0628\u0644\u0627\u06af ITPiran","article_published_time":"2024-07-25T08:40:56+00:00","og_image":[{"width":1793,"height":1110,"url":"https:\/\/cdn.itpiran.net\/2024\/07\/25111554\/SQL-1.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"admin","Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/#article","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/"},"author":{"name":"admin","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81"},"headline":"\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL","datePublished":"2024-07-25T08:40:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/"},"wordCount":182,"commentCount":0,"publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/07\/25111554\/SQL-1.jpg","keywords":["data base","MySQL"],"articleSection":["\u0622\u0645\u0648\u0632\u0634\u06cc","\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/","url":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/","name":"C\u00f3mo trabajar con fechas y horas en SQL - Blog de ITPiran","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/#primaryimage"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/07\/25111554\/SQL-1.jpg","datePublished":"2024-07-25T08:40:56+00:00","breadcrumb":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/#primaryimage","url":"https:\/\/cdn.itpiran.net\/2024\/07\/25111554\/SQL-1.jpg","contentUrl":"https:\/\/cdn.itpiran.net\/2024\/07\/25111554\/SQL-1.jpg","width":1793,"height":1110},{"@type":"BreadcrumbList","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.itpiran.net\/blog\/"},{"@type":"ListItem","position":2,"name":"\u0622\u0645\u0648\u0632\u0634\u06cc","item":"https:\/\/www.itpiran.net\/blog\/category\/tutorials\/"},{"@type":"ListItem","position":3,"name":"\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL"}]},{"@type":"WebSite","@id":"https:\/\/www.itpiran.net\/blog\/#website","url":"https:\/\/www.itpiran.net\/blog\/","name":"Blog de ITPiran","description":"Noticias y art\u00edculos sobre comercio sostenible en Ir\u00e1n","publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.itpiran.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.itpiran.net\/blog\/#organization","name":"Blog sobre negocios iran\u00edes sostenibles","alternateName":"ITPIran Blog","url":"https:\/\/www.itpiran.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","contentUrl":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","width":512,"height":512,"caption":"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81","name":"administraci\u00f3n","url":"https:\/\/www.itpiran.net\/blog\/es\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/posts\/15974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/comments?post=15974"}],"version-history":[{"count":3,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/posts\/15974\/revisions"}],"predecessor-version":[{"id":15978,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/posts\/15974\/revisions\/15978"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/media\/15975"}],"wp:attachment":[{"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/media?parent=15974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/categories?post=15974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/tags?post=15974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}