sql >> Base de Datos >  >> RDS >> Mysql

Formato de fecha de MySQL:lo que necesita saber

MySQL se deriva de 'My', la hija del cofundador y SQL, lenguaje de consulta estructurado. Es un tipo de sistema de gestión de base de datos relacional de código abierto. Este sistema de base de datos relacional ayuda a organizar los datos en tablas relacionables, lo que permite relaciones estructurales de diferentes conjuntos de datos.

La fecha de MySQL es uno de los tipos de datos temporales que pueden administrar valores de datos junto con otros tipos de datos, como tipos de datos numéricos, tipos de datos de cadenas, tipos de datos booleanos, tipos de datos espaciales y de fecha y hora.

La función DATE_FORMAT() se usa en MySQL para formatear la fecha usando el valor de formato especificado. Por ejemplo, si se proporciona una fecha, la función la formateará según los parámetros especificados.

Sintaxis de formato de fecha de MySQL

DATE_FORMAT(date, format)

La función de sintaxis anterior acepta dos parámetros como se muestra a continuación:

  • fecha – Especifica la fecha a formatear
  • formato:define el formato que se utilizará para formatear la fecha

A continuación se muestra una lista de formatos con los que debe familiarizarse cuando trabaje con la función de fecha.

  • %a:este formato muestra el nombre del día de la semana. está limitado de domingo a sábado.
  • %b:este símbolo de formato muestra el nombre del mes. está restringida de enero a diciembre.
  • %c:este símbolo de formato indica el nombre numérico del mes. está limitado de 0 a 12
  • %D:este símbolo de formato muestra el valor numérico del día del mes seguido de un sufijo como 1 o 2.
  • %e:este símbolo de formato muestra el valor numérico del día del mes. está limitado de 0 a 31
  • %f:este símbolo de formato muestra microsegundos. está limitado de 000000 a 999999.
  • %H:este símbolo de formato indica la hora. Está limitado de 00 a 23.
  • %i:este símbolo de formato muestra los minutos. está limitado de 00 a 59.
  • %j:este símbolo de formato muestra el día del año. está limitado de 001 a 366.
  • %M:este símbolo de formato indica el nombre del mes. está limitado de enero a diciembre
  • %p:este símbolo de formato muestra PM o AM
  • %S:este símbolo de formato muestra los segundos. está limitado de 00 a 59
  • %U:este símbolo de formato muestra los días de la semana donde el domingo es el primer día. Está limitado de 00 a 53.
  • %W:este símbolo de formato muestra los días de la semana de domingo a sábado
  • %Y:este símbolo de formato muestra el valor numérico del año como un número de 4 dígitos

Los formatos enumerados anteriormente devuelven una fecha formateada.

Ejemplo 1: 

Para extraer o mostrar el año a partir de la fecha actual ejecutaremos la siguiente línea de comando:

SELECT DATE_FORMAT("2021-09-25", "%Y");
Salida:
Ejemplo 2:

Extraiga el nombre del mes de una fecha determinada como se muestra a continuación:

2021-09-25

SELECT DATE_FORMAT("2021-09-25", "%M");
Salida:
Ejemplo 3:

Extraiga las horas y los minutos de la fecha que se proporciona a continuación:

2021-09-25

SELECT DATE_FORMAT("2021-09-25 10:20:23", "%H %i");
Salida:
Ejemplo 4: 

Extraiga el día del mes numéricamente a partir de la fecha especificada a continuación:

2021-09-25

SELECT DATE_FORMAT("2021-09-25", "%D");
Salida:
Ejemplo 5:

Extraiga el mes, el día y el año respectivamente a partir de la fecha proporcionada en este documento:

2021-09-25

SELECT DATE_FORMAT("2021-09-25", "%M %d %Y");
Salida:

La fecha de MySQL usa el formato; aaaa-mm-dd para almacenar un valor de datos, y este formato generalmente se fija sin permiso para cambiarlo en absoluto. Para los requisitos de almacenamiento de MySQL, para almacenar un solo valor de fecha, usaría alrededor de 3 bytes y tiene un valor de fecha que va desde 1000-01-01 hasta 9999-12-31. Por lo tanto, un usuario que necesite almacenar un rango de fechas fuera de estos parámetros solo será posible a través de números enteros. Sin embargo, este proceso es bastante arduo y requerirá que cree tres columnas, una para el año, otra para el mes y la última para el día.

Esto a menudo no se recomienda probar en la mayoría de las ocasiones si desea cambiar el formato de fecha. Deshabilitar el "modo estricto" ayudará a convertir cualquier fecha no válida al "valor de fecha cero". Una fecha no válida en este caso no seguiría el formato de fecha estándar de MySQL, por ejemplo, 2020-01-24. Esto también crearía la necesidad de desarrollar "funciones almacenadas", que reproducirían las funciones de fecha recién creadas de MySQL.

Valores de fecha MySQL con años de 2 dígitos

MySQL solo aceptará valores de año de dos dígitos bajo las siguientes condiciones:

  1. Los valores de año entre 00 y 69 se convierten a 2000-2069
  2. Los valores de año entre 70 y 79 se convierten a 1970-1999

Sin embargo, es aconsejable evitar el uso de valores de fecha con dos dígitos, ya que es ambiguo.
Aquí hay un ejemplo. Se crea una tabla con el nombre "personas" y tiene columnas de "tipos de datos":

CREATE TABLE IF NOT EXISTS people ( 
JOB_ID integer NOT NULL UNIQUE PRIMARY KEY, 
JOB_TITLE varchar(35) NOT NULL DEFAULT ' ', 
MIN_SALARY decimal(6,0) DEFAULT 8000, 
MAX_SALARY decimal(6,0) DEFAULT NULL
)ENGINE=InnoDB;

La siguiente función 'insertará una fila' en la tabla 'personas':

INSERT INTO people(JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY)
VALUES('5', 'Foss', '2000', '2000');

Ahora 'Consulta los datos' de la tabla de 'personas'

SELECT * FROM people;

Después de ejecutar los comandos anteriores, ahora será posible usar la opción de formato de año de 2 dígitos para insertar datos en la tabla de "personas":

INSERT INTO people(JOB_ID,JOB_TITLE,MIN_SALARY,MAX_SALARY,BIRTH)
VALUES('6', 'FOSSLINUX', '200', '2000', '01-09-01');

'01' se ha utilizado en la primera fila como el año, cayendo entre (rango 00-69). MySQL luego lo convertirá a 2001, mientras que en la segunda fila, el uso de '84' ​​cae en el rango (70-99), y MySQL lo convierte a 1984.

Funciones de fecha MySQL

MySQL a menudo proporciona y usa varias funciones de fecha, lo que ayuda a los usuarios a manipular sus datos de manera más efectiva y rápida.
Por ejemplo, usar la función 'AHORA( )' ayuda a obtener la fecha y hora actuales:

SELECT NOW( );

Para obtener solo la parte de la fecha de 'DATETIME', use solo la función 'DATE( )':

SELECT DATE(NOW( ) );

Para obtener la fecha actual del sistema, use CURDATE ( ):

SELECT CURDATE();

La función 'DATE_FORMAT' se puede usar para formatear el valor de la fecha en este formato; mm/dd/aaaa. Utiliza el patrón de formato de fecha de %m/%d/%Y

SELECT DATE_FORMAT('2021-09-25 22:23:00', '%W %D %M %Y');

Si desea calcular el número de días entre dos valores de fecha, utilice la función 'DATEDIFF':

mysql> SELECT DATEDIFF('2020-09-25', '2021-09-25') days;

El uso de la función 'DATE_ADD' ayuda a agregar varios años, meses, semanas o días:

SELECT DATE_ADD('2021-09-25', INTERVAL 31 DAY);

La función 'DATE_SUB' también se puede usar para restar un intervalo de fechas:

SELECT DATE_SUB("2021-09-25", INTERVAL 10 DAY);

El uso de la función correspondiente en términos de fecha, mes, trimestre y año lo ayudará a obtener el día, mes, etcétera exactos para un valor de fecha como se muestra a continuación:

SELECT DAY(‘2000-12-31’) day,
MONTH( ‘2000-12-31’) month
QUARTER(‘2000-12-31’) quarter,
YEAR(‘2000-12-31’) year

Day ǀ month ǀ quarter ǀ year ǀ
31 ǀ 12 ǀ 4 ǀ 2000ǀ

Se puede acceder a la información semanal de funciones relacionadas a través de:

SELECT
WEEKDAY(‘2000-12-31’) weekday,
WEEK( ‘2000-12-31’) week,
WEEKOFTHEYEAR(‘2000-12-31’) weekofyear;

weekday ǀ week ǀ weekofyear ǀ
6 ǀ 53 ǀ 52 ǀ

La función semana siempre devuelve un número de semana que tiene un índice basado en cero. Deberá pasar un segundo argumento o pasar un '0' para evitar que esto suceda. Pasar '1' devolverá el número de semana '1-indexado'.

WEEKDAY(‘2000-12-31’) weekday,
WEEK( ‘2000-12-31’, 1) week,
WEEKOFTHEYEAR(‘2000-12-31’) weekofyear;

weekday ǀ week ǀ weekofyear ǀ
6 ǀ 52 ǀ 52 ǀ

Conclusión

Este es un breve artículo tutorial que cubre el tema del formato de fecha de MySQL. Esperamos que se hayan cubierto todos los aspectos que deseaba conocer sobre los formatos de fecha de MySQL. Recuerde dar un me gusta a través de la sección de comentarios si encuentra útil el artículo.