Volver | Más funciones Importantes

Table of Contents

STR_TO_DATE
SUBDATE
SUBTIME
TIME
WEEK
WEEKOFYEAR
CONVERT_TZ

STR_TO_DATE

Sintaxis:
STR_TO_DATE(str,format)
Descripción:

Esta es la inversa de la función DATE_FORMAT(). Toma la cadena str y la cadena de formato format. STR_TO_DATE() devuelve un valor DATETIME si la cadena de formato contiene parte de fecha y hora, o un valor DATE o TIME si la cadena contiene sólo parte de fecha u hora.
Los valores fecha, hora o fecha/hora contenidos en str deben ser dados en el formato indicado por format. Para los especificadores que pueden usarse en format, consulte la tabla en la descripción de la función DATE_FORMAT() . Todos los otros caracteres no se interpretan. Si str contiene un valor fecha, hora o fecha/hora ilegal, STR_TO_DATE() retorna NULL.

**Ejemplos**
 
SELECT STR_TO_DATE('03.10.2003 09.20','%d.%m.%Y %H.%i');
        -> '2003-10-03 09:20:00'
El chequeo de rango en las partes de los valores de fecha se describe en Sección 11.3.1, “Los tipos de datos DATETIME, DATE y TIMESTAMP”. Esto significa, por ejemplo, que una fecha con una parte de día mayor que el número de días en un mes se permite mientras la parte del día esté en el rango de 1 a 31. También, fechas “cero” o fechas con partes de 0 se permiten.
 SELECT STR_TO_DATE('00/00/0000', '%m/%d/%Y');
        -> '0000-00-00'


SUBDATE

Sintaxis:
SUBDATE(DATE,INTERVAL expr TYPE), SUBDATE(expr,days)
Descripción:
Cuando se invoca con la forma INTERVAL del segundo argumento, SUBDATE() es sinónimo de DATE_SUB(). Para información del argumento INTERVAL , consulte la discusión para DATE_ADD().
**Ejemplos**
 
Dime la fecha resultante de 31 dias antes de la fecha 1998-01-02

SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
----RESULTADO----
+-----------------------------------------+
| DATE_SUB('1998-01-02', INTERVAL 31 DAY) |
+-----------------------------------------+
| 1997-12-02                              |
+-----------------------------------------+


SUBTIME

Sintaxis:
SUBTIME(expr,expr2)
Descripción:
SUBTIME() resta expr2 de expr y devuelve el resultado. expr es una expresión de hora o fecha/hora, y expr2 es una expresión de hora.
**Ejemplos**
SELECT SUBTIME('2014-02-04 23:59:59','1 1:1:1');
Devuelve-> '2014-02-03 22:58:58'
 
SELECT SUBTIME('02:00:00', '01:00:00');
Devuelve-> '01:00:00'
Cuidado a la hora de restar horas porque cuando expr2 es mayor que expr, el resultado devuelto es con valor negativo.


TIME


Sintaxis:
TIME(expr)

Descripción:
Extrae la parte de hora de la expresión hora o fecha/hora expr.
**Ejemplos**
SELECT TIME('2014-02-01 01:02:03');
Devuelve-> '01:02:03'


WEEK


Sintaxis:
WEEK(DATE[,mode])

Descripción:
Esta función devuelve el número de semana para date. La forma de dos argumentos de WEEK() le permite especificar si la semana comienza en lunes o domingo y si el valor de retorno debe estar en el rango de 0 a 53 o de 1 a 53. Si el argumento mode se omite en MySQL 5.0, el valor de la variable de sistema default_week_format se usa.


La siguiente tabla describe cómo funciona el argumento mode :

Modo Primer día de semana Rango Semana 1 es la primera semana...
0 Domingo 0-53 con un domingo en este año
1 Lunes 0-53 con más de 3 días este año
2 Domingo 1-53 con un domingo este año
3 Lunes 1-53 con más de 3 días este año
4 Domingo 0-53 con más de 3 días este año
5 Lunes 0-53 con un lunes en este año
6 Domingo 1-53 con más de 3 días este año
7 Lunes 1-53 con un lunes en este año


Ejemplo
 
mysql> SELECT WEEK('1998-02-20');
        -> 7
mysql> SELECT WEEK('1998-02-20',0);
        -> 7
mysql> SELECT WEEK('1998-02-20',1);
        -> 8
mysql> SELECT WEEK('1998-12-31',1);
        -> 53


WEEKOFYEAR

Sintaxis:
WEEKOFYEAR(DATE)
Descripción:
Devuelve la semana de la fecha como número, con un rango del 1 a 53. Esta es una función de compatibilidad equivalente a WEEK(date,3).

**Ejemplos**
 
A)Dime que semana ocupa la fecha 1997-06-14
B)Dime los nombres de los trabajadores contratados en la semana 12 del año.
A)SELECT WEEKOFYEAR('1997-06-14');
----RESULTADO----
+--------------------------+
| WEEKOFYEAR('1997-06-14') |
+--------------------------+
|                       24 |
+--------------------------+
B)SELECT FIRST_NAME, LAST_NAME
  FROM EMPLOYEES
  WHERE WEEKOFYEAR(HIRE_DATE)=12;
----RESULTADO----
+------------+-----------+
| FIRST_NAME | LAST_NAME |
+------------+-----------+
| Sundar     | Ande      |
| Elizabeth  | Bates     |
| Alyssa     | Hutton    |
+------------+-----------+


CONVERT_TZ

Sintaxis:
CONVERT_TZ(dt,from_tz,to_tz)
Definición:
Convierte un valor dt, de fecha y hora, de la zona horaria from_tz dada a la zona de tiempos to_tz y devuelve el valor resultante.
Las zonas horarias pueden ser especificadas como se describe en la sección "soporte de zonas horarias en el servidor MySQL".
Esta función devuelve NULL si el argumento es inválido.
Si el valor se sale fuera del rango soportado por el tipo TIMESTAMP cuando se convierte desde from_tz a UTC, no realizará ninguna conversión.
Tanto el rango TIMESTAMP como otros se describen en la Sección "Panorámica de tipos de fechas y hora”.

**Ejemplo**
SELECT CONVERT_TZ('2014-02-04 12:00:00','+00:00','-04:00');
Devuelve-> '2014-02-04 08:00:00'
Para usar zonas de tiempo con nombre como 'MET', la tabla de zonas de tiempo debe ser preparada convenientemente. Si no, devuelve NULL.


Home^ Siguiente>