martes, 29 de enero de 2013

Funciones de Fechas

lc_time_names 

Controla el idioma usado para mostrar día y los nombres y abreviaturas meses. Esta variable afecta a la salida de la DATE_FORMAT (), DAYNAME () y MonthName () funciones.

SET lc_time_names = 'es_MX';

ar_AE: Arabic - United Arab Emiratesar_BH: Arabic - Bahrain
ar_DZ: Arabic - Algeriaar_EG: Arabic - Egypt
ar_IN: Arabic - Iranar_IQ: Arabic - Iraq
ar_JO: Arabic - Jordanar_KW: Arabic - Kuwait
ar_LB: Arabic - Lebanonar_LY: Arabic - Libya
ar_MA: Arabic - Moroccoar_OM: Arabic - Oman
ar_QA: Arabic - Qatarar_SA: Arabic - Saudi Arabia
ar_SD: Arabic - Sudanar_SY: Arabic - Syria
ar_TN: Arabic - Tunisiaar_YE: Arabic - Yemen
be_BY: Belarusian - Belarusbg_BG: Bulgarian - Bulgaria
ca_ES: Catalan - Catalancs_CZ: Czech - Czech Republic
da_DK: Danish - Denmarkde_AT: German - Austria
de_BE: German - Belgiumde_CH: German - Switzerland
de_DE: German - Germanyde_LU: German - Luxembourg
EE: Estonian - Estoniaen_AU: English - Australia
en_CA: English - Canadaen_GB: English - United Kingdom
en_IN: English - Indiaen_NZ: English - New Zealand
en_PH: English - Philippinesen_US: English - United States
en_ZA: English - South Africaen_ZW: English - Zimbabwe
es_AR: Spanish - Argentinaes_BO: Spanish - Bolivia
es_CL: Spanish - Chilees_CO: Spanish - Columbia
es_CR: Spanish - Costa Ricaes_DO: Spanish - Dominican Republic
es_EC: Spanish - Ecuadores_ES: Spanish - Spain
es_GT: Spanish - Guatemalaes_HN: Spanish - Honduras
es_MX: Spanish - Mexicoes_NI: Spanish - Nicaragua
es_PA: Spanish - Panamaes_PE: Spanish - Peru
es_PR: Spanish - Puerto Ricoes_PY: Spanish - Paraguay
es_SV: Spanish - El Salvadores_US: Spanish - United States
es_UY: Spanish - Uruguayes_VE: Spanish - Venezuela
eu_ES: Basque - Basquefi_FI: Finnish - Finland
fo_FO: Faroese - Faroe Islandsfr_BE: French - Belgium
fr_CA: French - Canadafr_CH: French - Switzerland
fr_FR: French - Francefr_LU: French - Luxembourg
gl_ES: Galician - Galiciangu_IN: Gujarati - India
he_IL: Hebrew - Israelhi_IN: Hindi - India
hr_HR: Croatian - Croatiahu_HU: Hungarian - Hungary
id_ID: Indonesian - Indonesiais_IS: Icelandic - Iceland
it_CH: Italian - Switzerlandit_IT: Italian - Italy
ja_JP: Japanese - Japanko_KR: Korean - Korea
lt_LT: Lithuanian - Lithuanialv_LV: Latvian - Latvia
mk_MK: Macedonian - FYROMmn_MN: Mongolia - Mongolian
ms_MY: Malay - Malaysianb_NO: Norwegian(Bokml) - Norway
nl_BE: Dutch - Belgiumnl_NL: Dutch - The Netherlands
no_NO: Norwegian - Norwaypl_PL: Polish - Poland
pt_BR: Portugese - Brazilpt_PT: Portugese - Portugal
ro_RO: Romanian - Romaniaru_RU: Russian - Russia
ru_UA: Russian - Ukrainesk_SK: Slovak - Slovakia
sl_SI: Slovenian - Sloveniasq_AL: Albanian - Albania
sr_YU: Serbian - Yugoslaviasv_FI: Swedish - Finland
sv_SE: Swedish - Swedenta_IN: Tamil - India
te_IN: Telugu - Indiath_TH: Thai - Thailand
tr_TR: Turkish - Turkeyuk_UA: Ukrainian - Ukraine
ur_PK: Urdu - Pakistanvi_VN: Vietnamese - Vietnam
zh_CN: Chinese - Peoples Republic of Chinazh_HK: Chinese - Hong Kong SAR
zh_TW: Chinese - Taiwan



CURDATE()

Retorna la fecha horaria como valor en formato 'YYYY-MM-DD' o YYYYMMDD, dependiendo de si la fucnión se usa en un contexto numérico o de cadena de caracteres.

mysql> SELECT CURDATE();
        -> '1997-12-15'
mysql> SELECT CURDATE() + 0;
        -> 19971215

CURTIME()

Retorna la hora actual como valor en formato 'HH:MM:SS' o HHMMSS dependiendo de si la fucnión se usa en un contexto numérico o de cadena de caracteres.

mysql> SELECT CURTIME();
        -> '23:50:26'
mysql> SELECT CURTIME() + 0;
        -> 235026

DATE(expr)

Extrae la parte de fecha de la expresión de fecha o fecha y hora expr.

mysql> SELECT DATE('2003-12-31 01:02:03');
        -> '2003-12-31'

DATEDIFF(expr,expr2)

DATEDIFF() retorna el número de días entre la fecha inicial expr y la fecha final expr2. expr y expr2 son expresiones de fecha o de fecha y hora. Sólo las partes de fecha de los valores se usan en los cálculos.

mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
        -> 1
mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
        -> -31

DATE_FORMAT(date,format)

Formatea el valor date según la cadena format . Los siguientes especificadores pueden usarse en la cadena

EspecificadorDescripción
%aDía de semana abreviado (Sun..Sat)
%bMes abreviado (Jan..Dec)
%cMes, numérico (0..12)
%DDía del mes con sufijo inglés (0th1st2nd3rd, ...)
%dDía del mes numérico (00..31)
%eDía del mes numérico (0..31)
%fMicrosegundos (000000..999999)
%HHora (00..23)
%hHora (01..12)
%IHora (01..12)
%iMinutos, numérico (00..59)
%jDía del año (001..366)
%kHora (0..23)
%lHora (1..12)
%MNombre mes (January..December)
%mMes, numérico (00..12)
%pAM o PM
%rHora, 12 horas (hh:mm:ss seguido de AM o PM)
%SSegundos (00..59)
%sSegundos (00..59)
%THora, 24 horas (hh:mm:ss)
%USemana (00..53), donde domingo es el primer día de la semana
%uSemana (00..53), donde lunes es el primer día de la semana
%VSemana (01..53), donde domingo es el primer día de la semana; usado con %X
%vSemana (01..53), donde lunes es el primer día de la semana; usado con %x
%WNombre día semana (Sunday..Saturday)
%wDía de la semana (0=Sunday..6=Saturday)
%XAño para la semana donde domingo es el primer día de la semana, numérico, cuatro dígitos; usado con %V
%xAño para la semana, donde lunes es el primer día de la semana, numérico, cuatro dígitos; usado con %v
%YAño, numérico, cuatro dígitos
%yAño, numérico (dos dígitos)
%%Carácter '%' literal

Todos los otros caracteres se copian al resultado sin interpretación.

Tenga en cuenta que el carácter '%' se necesita antes de caracteres especificadores de formato.

Los rangos para los especificadores de mes y día comienzan en cero debido a que MySQL permite almacenar fechas incompletas tales como '2004-00-00'.

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
        -> 'Saturday October 1997'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
        -> '22:23:00'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
                          '%D %y %a %d %m %b %j');
        -> '4th 97 Sat 04 10 Oct 277'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
                          '%H %k %I %r %T %S %w');
        -> '22 22 10 10:23:00 PM 22:23:00 00 6'
mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
        -> '1998 52'

DAYNAME(date)

Retorna el nombre del día de la semana para date.

mysql> SELECT DAYNAME('1998-02-05');
        -> 'Thursday'

DAYOFMONTH(date)

Retorna el día del mes para date, en el rango 1 a 31.

mysql> SELECT DAYOFMONTH('1998-02-03');
        -> 3

DAYOFWEEK(date)

Retorna el índice del día de la semana para date (1 = domingo, 2 = lunes, ..., 7 = sábado). Estos valores del índice se corresponden con el estándar ODBC.

mysql> SELECT DAYOFWEEK('1998-02-03');
        -> 3

DAYOFYEAR(date)

Retorna el día del año para date, en el rango 1 a 366.

mysql> SELECT DAYOFYEAR('1998-02-03');
        -> 34

STR_TO_DATE() .

Los tres valores posibles para el primer argumento y los cinco posibles valores para el segundo argumento resultan en 15 posibles cadenas de formato (para los especificadores usados, consulte la tabla en la descripción de la función DATE_FORMAT() ).

En MySQL 5.0, TIMESTAMP puede usarse; GET_FORMAT() retorna los mismos valores que para DATETIME.

mysql> SELECT DATE_FORMAT('2003-10-03',GET_FORMAT(DATE,'EUR'));
        -> '03.10.2003'
mysql> SELECT STR_TO_DATE('10.31.2003',GET_FORMAT(DATE,'USA'));
        -> '2003-10-31'
     
HOUR(time)

Retorna la hora para time. El rango del valor de retorno es 0 a 23 para valores de horas del día.

mysql> SELECT HOUR('10:05:03');
        -> 10
Además, el rango de los valores TIME es mucho mayor, así que HOUR puede retornar valores mayores que 23.

mysql> SELECT HOUR('272:59:59');
        -> 272

LAST_DAY(date)

Toma una fecha o fecha/hora y retorna el valor correspondiente para el último día del mes. Retorna NULL si el argumento es inválido.

mysql> SELECT LAST_DAY('2003-02-05');
        -> '2003-02-28'
mysql> SELECT LAST_DAY('2004-02-05');
        -> '2004-02-29'
mysql> SELECT LAST_DAY('2004-01-01 01:01:01');
        -> '2004-01-31'
mysql> SELECT LAST_DAY('2003-03-32');
        -> NULL

MICROSECOND(expr)

Retorna los microsegundos a partir del a expresión de hora o fecha/hora expr como número en el rango de 0 a 999999.

mysql> SELECT MICROSECOND('12:00:00.123456');
        -> 123456
mysql> SELECT MICROSECOND('1997-12-31 23:59:59.000010');
        -> 10

MINUTE(time)

Retorna el minuto de time, en el rango 0 a 59.

mysql> SELECT MINUTE('98-02-03 10:05:03');
        -> 5

MONTH(date)

Retorna el mes para date, en el rango 1 a 12.

mysql> SELECT MONTH('1998-02-03');
        -> 2

MONTHNAME(date)

Retorna el nombre completo del mes para date.

mysql> SELECT MONTHNAME('1998-02-05');
        -> 'February'

NOW()

Retorna la fecha y hora actual como valor en formato 'YYYY-MM-DD HH:MM:SS' o YYYYMMDDHHMMSS , dependiendo de si la función se usa en contexto numérico o de cadena de caracteres.

mysql> SELECT NOW();
        -> '1997-12-15 23:50:26'
mysql> SELECT NOW() + 0;
        -> 19971215235026

TIME(expr)

Extrae la parte de hora de la expresión hora o fecha/hora expr.

mysql> SELECT TIME('2003-12-31 01:02:03');
        -> '01:02:03'
mysql> SELECT TIME('2003-12-31 01:02:03.000123');
        -> '01:02:03.000123'

TIME_FORMAT(time,format)

Se usa como la función DATE_FORMAT() pero la cadena format puede contener sólo los especificadores de formato que tratan horas, minutos y segundos. Otros especificadores producen un valor NULL o 0.

Si el valor time contiene una parte horaria mayor que 23, los especificadores de formato horario %H y %k producen un valor mayor que el rango usual de 0..23. Los otros especificadores de hora producen la hora modulo 12.

mysql> SELECT TIME_FORMAT('100:00:00', '%H %k %h %I %l');
        -> '100 100 04 04 4'

TIME_TO_SEC(time)

Retorna el argumento time convertido en segundos.

mysql> SELECT TIME_TO_SEC('22:23:00');
        -> 80580
mysql> SELECT TIME_TO_SEC('00:39:38');
        -> 2378

TO_DAYS(date)

Dada la fecha date, retorna un número de día (el número de dias desde el año 0).

mysql> SELECT TO_DAYS(950501);
        -> 728779
mysql> SELECT TO_DAYS('1997-10-07');
        -> 729669

WEEK(date[,mode])

Esta función retorna 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. Consulte Sección 5.3.3, “Variables de sistema del servidor”.

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

Primer día
Modode semanaRangoSemana 1 es la primera semana...
0Domingo0-53con un domingo en este año
1Lunes0-53con más de 3 días este año
2Domingo1-53con un domingo este año
3Lunes1-53con más de 3 días este año
4Domingo0-53con más de 3 días este año
5Lunes0-53con un lunes en este año
6Domingo1-53con más de 3 días este año
7Lunes1-53con un lunes en este año

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

WEEKDAY(date)

Retorna el índice de días de la semana para date (0 = lunes, 1 = martes, ... 6 = domingo).

mysql> SELECT WEEKDAY('1998-02-03 22:23:00');
        -> 1
mysql> SELECT WEEKDAY('1997-11-05');
        -> 2

WEEKOFYEAR(date)

Retorna la semana de la fecha como número del rango 1 a 53. Esta es una función de compatibilidad equivalente a WEEK(date,3).

mysql> SELECT WEEKOFYEAR('1998-02-20');
        -> 8

YEAR(date)

Retorna el año para date, en el rango 1000 a 9999.

mysql> SELECT YEAR('98-02-03');
        -> 1998

No hay comentarios:

Publicar un comentario