MySQL
jueves, 31 de enero de 2013
Introducción
MySQL es un sistema de gestión de bases de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones.1 MySQL AB —desde enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde abril de 2009— desarrolla MySQL como software libre en un esquema de licenciamiento dual.
Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia específica que les permita este uso. Está desarrollado en su mayor parte en ANSI C.
Al contrario de proyectos como Apache, donde el software es desarrollado por una comunidad pública y los derechos de autor del código están en poder del autor individual, MySQL es patrocinado por una empresa privada, que posee el copyright de la mayor parte del código.
Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson y Michael Widenius.
miércoles, 30 de enero de 2013
martes, 29 de enero de 2013
Funciones de Cadenas
ASCII(str)
Retorna el valor ASCII de un carcater
mysql> SELECT ASCII('2');
-> 50
mysql> SELECT ASCII(2);
-> 50
mysql> SELECT ASCII('dx');
-> 100
BIN(N)
Retorna valor binario de un decimal
mysql> SELECT BIN(12);
-> '1100'
BIT_LENGTH(str)
Retorna la longitud en Bits de un caracter
mysql> SELECT BIT_LENGTH('text');
-> 32
CHAR(N,... [USING charset_name])
Combierte numerico a caracter
mysql> SELECT CHAR(77,121,83,81,'76');
-> 'MySQL'
mysql> SELECT CHAR(77,77.3,'77.3');
-> 'MMM'
mysql> SELECT HEX(CHAR(1,0)), HEX(CHAR(256));
+----------------+----------------+
| HEX(CHAR(1,0)) | HEX(CHAR(256)) |
+----------------+----------------+
| 0100 | 0100 |
+----------------+----------------+
mysql> SELECT HEX(CHAR(1,0,0)), HEX(CHAR(256*256));
+------------------+--------------------+
| HEX(CHAR(1,0,0)) | HEX(CHAR(256*256)) |
+------------------+--------------------+
| 010000 | 010000 |
+------------------+--------------------+
mysql> SELECT CHARSET(CHAR(0x65)), CHARSET(CHAR(0x65 USING utf8));
+---------------------+--------------------------------+
| CHARSET(CHAR(0x65)) | CHARSET(CHAR(0x65 USING utf8)) |
+---------------------+--------------------------------+
| binary | utf8 |
+---------------------+--------------------------------+
CHAR_LENGTH(str)
Retorna la longitud del caracter
CHARACTER_LENGTH(str)
CHARACTER_LENGTH() is a synonym for CHAR_LENGTH().
CONCAT(str1,str2,...)
Concatena caracteres o cadenas
SELECT CONCAT(CAST(int_col AS CHAR), char_col);
CONCAT() returns NULL if any argument is NULL.
mysql> SELECT CONCAT('My', 'S', 'QL');
-> 'MySQL'
mysql> SELECT CONCAT('My', NULL, 'QL');
-> NULL
mysql> SELECT CONCAT(14.3);
-> '14.3'
CONCAT_WS(separator,str1,str2,...)
Concatena cadenas, el primer parametro es el separador de la concatenacion
mysql> SELECT CONCAT_WS(',','First name','Second name','Last Name');
-> 'First name,Second name,Last Name'
mysql> SELECT CONCAT_WS(',','First name',NULL,'Last Name');
-> 'First name,Last Name'
CONCAT_WS() does not skip empty strings. However, it does skip any NULL values after the separator argument.
CONV(N,from_base,to_base)
Combierte de un sistema numerico a otro, el primer parámetro es el carácter el segundo de cual se convertira y el tercero el sistema que se devolvera
mysql> SELECT CONV('a',16,2);
-> '1010'
mysql> SELECT CONV('6E',18,8);
-> '172'
mysql> SELECT CONV(-17,10,-18);
-> '-H'
mysql> SELECT CONV(10+'10'+'10'+0xa,10,10);
-> '40'
ELT(N,str1,str2,str3,...)
Retorna el caracter o cadena que se establesca como primer parametro
mysql> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
-> 'ej'
mysql> SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo');
-> 'foo'
EXPORT_SET(bits,on,off[,separator[,number_of_bits]])
Returns a string such that for every bit set in the value bits, you get an on string and for every reset bit, you get an off string. Bits in bits are examined from right to left (from low-order to high-order bits). Strings are added to the result from left to right, separated by the separator string (the default being the comma character ‘,’). The number of bits examined is given by number_of_bits (defaults to 64).
mysql> SELECT EXPORT_SET(5,'Y','N',',',4);
-> 'Y,N,Y,N'
mysql> SELECT EXPORT_SET(6,'1','0',',',10);
-> '0,1,1,0,0,0,0,0,0,0'
FIELD(str,str1,str2,str3,...)
Retorna el numero de repeticiones que tiene el primer parametro
mysql> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
-> 2
mysql> SELECT FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');
-> 0
FIND_IN_SET(str,strlist)
Retorna el numero de matriz donde se encuentre el primer parametro
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
-> 2
FORMAT(X,D)
Formato de decimales, el segundo parametro es el numero de decimales
mysql> SELECT FORMAT(12332.123456, 4);
-> '12,332.1235'
mysql> SELECT FORMAT(12332.1,4);
-> '12,332.1000'
mysql> SELECT FORMAT(12332.2,0);
-> '12,332'
HEX(N_or_S)
If N_or_S is a number, returns a string representation of the hexadecimal value of N, where N is a longlong (BIGINT) number. This is equivalent to CONV(N,10,16).
If N_or_S is a string, returns a hexadecimal string representation of N_or_S where each character in N_or_S is converted to two hexadecimal digits.
mysql> SELECT HEX(255);
-> 'FF'
mysql> SELECT 0x616263;
-> 'abc'
mysql> SELECT HEX('abc');
-> 616263
INSERT(str,pos,len,newstr)
Inserta una cadena en otra
mysql> SELECT INSERT('Quadratic', 3, 4, 'What');
-> 'QuWhattic'
mysql> SELECT INSERT('Quadratic', -1, 4, 'What');
-> 'Quadratic'
mysql> SELECT INSERT('Quadratic', 3, 100, 'What');
-> 'QuWhat'
INSTR(str,substr)
Retorna la posicion buscada en la cadena
mysql> SELECT INSTR('foobarbar', 'bar');
-> 4
mysql> SELECT INSTR('xbar', 'foobar');
-> 0
LCASE(str)
LCASE() Combierte mayusculas a minusculas al igual que LOWER().
LEFT(str,len)
Subtrae caracteres de la izquierda
mysql> SELECT LEFT('foobarbar', 5);
-> 'fooba'
LENGTH(str)
Retorna el numero de caracteres
mysql> SELECT LENGTH('text');
-> 4
LOAD_FILE(file_name)
Reads the file and returns the file contents as a string. To use this function, the file must be located on the server host, you must specify the full pathname to the file, and you must have the FILE privilege. The file must be readable by all and its size less than max_allowed_packet bytes.
If the file does not exist or cannot be read because one of the preceding conditions is not satisfied, the function returns NULL.
As of MySQL 5.1.6, the character_set_filesystem system variable controls interpretation of filenames that are given as literal strings.
mysql> UPDATE t
SET blob_col=LOAD_FILE('/tmp/picture')
WHERE id=1;
LOCATE(substr,str), LOCATE(substr,str,pos)
Retorna la posicion de la cadena
mysql> SELECT LOCATE('bar', 'foobarbar');
-> 4
mysql> SELECT LOCATE('xbar', 'foobar');
-> 0
mysql> SELECT LOCATE('bar', 'foobarbar', 5);
-> 7
LOWER(str)
Combierte mayusculas a minusculas
mysql> SELECT LOWER('QUADRATICALLY');
-> 'quadratically'
LPAD(str,len,padstr)
Returns the string str, left-padded with the string padstr to a length of len characters. If str is longer than len, the return value is shortened to len characters.
mysql> SELECT LPAD('hi',4,'??');
-> '??hi'
mysql> SELECT LPAD('hi',1,'??');
-> 'h'
LTRIM(str)
Quita espacios en blanco
mysql> SELECT LTRIM(' barbar');
-> 'barbar'
MAKE_SET(bits,str1,str2,...)
Returns a set value (a string containing substrings separated by ‘,’ characters) consisting of the strings that have the corresponding bit in bits set. str1 corresponds to bit 0, str2 to bit 1, and so on. NULL values in str1, str2, ... are not appended to the result.
mysql> SELECT MAKE_SET(1,'a','b','c');
-> 'a'
mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world');
-> 'hello,world'
mysql> SELECT MAKE_SET(1 | 4,'hello','nice',NULL,'world');
-> 'hello'
mysql> SELECT MAKE_SET(0,'a','b','c');
-> ''
MID(str,pos,len)
MID(str,pos,len) is a synonym for SUBSTRING(str,pos,len).
OCT(N)
Returns a string representation of the octal value of N, where N is a longlong (BIGINT) number. This is equivalent to CONV(N,10,8). Returns NULL if N is NULL.
mysql> SELECT OCT(12);
-> '14'
OCTET_LENGTH(str)
OCTET_LENGTH() is a synonym for LENGTH().
ORD(str)
If the leftmost character of the string str is a multi-byte character, returns the code for that character, calculated from the numeric values of its constituent bytes using this formula:
(1st byte code)
+ (2nd byte code × 256)
+ (3rd byte code × 2562) ...
If the leftmost character is not a multi-byte character, ORD() returns the same value as the ASCII() function.
mysql> SELECT ORD('2');
-> 50
POSITION(substr IN str)
POSITION(substr IN str) is a synonym for LOCATE(substr,str).
QUOTE(str)
Quotes a string to produce a result that can be used as a properly escaped data value in an SQL statement. The string is returned enclosed by single quotes and with each instance of single quote (‘'’), backslash (‘\’), ASCII NUL, and Control-Z preceded by a backslash. If the argument is NULL, the return value is the word “NULL” without enclosing single quotes.
mysql> SELECT QUOTE('Don\'t!');
-> 'Don\'t!'
mysql> SELECT QUOTE(NULL);
-> NULL
REPEAT(str,count)
Repite cadenas
mysql> SELECT REPEAT('MySQL', 3);
-> 'MySQLMySQLMySQL'
REPLACE(str,from_str,to_str)
Remplaza una cadena por otra
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
-> 'WwWwWw.mysql.com'
REVERSE(str)
Invierte una cadena
mysql> SELECT REVERSE('abc');
-> 'cba'
RIGHT(str,len)
Retorna cadena de derecha a izquierda
mysql> SELECT RIGHT('foobarbar', 4);
-> 'rbar'
RPAD(str,len,padstr)
Returns the string str, right-padded with the string padstr to a length of len characters. If str is longer than len, the return value is shortened to len characters.
mysql> SELECT RPAD('hi',5,'?');
-> 'hi???'
mysql> SELECT RPAD('hi',1,'?');
-> 'h'
RTRIM(str)
Quita espacios en blanco por la izquierda
mysql> SELECT RTRIM('barbar ');
-> 'barbar'
SOUNDEX(str)
Returns a soundex string from str. Two strings that sound almost the same should have identical soundex strings. A standard soundex string is four characters long, but the SOUNDEX() function returns an arbitrarily long string. You can use SUBSTRING() on the result to get a standard soundex string. All non-alphabetic characters in str are ignored. All international alphabetic characters outside the A-Z range are treated as vowels.
Important: When using SOUNDEX(), you should be aware of the following limitations:
This function, as currently implemented, is intended to work well with strings that are in the English language only. Strings in other languages may not produce reliable results.
This function is not guaranteed to provide consistent results with strings that use multi-byte character sets, including utf-8.
We hope to remove these limitations in a future release. See Bug#22638 for more information.
mysql> SELECT SOUNDEX('Hello');
-> 'H400'
mysql> SELECT SOUNDEX('Quadratically');
-> 'Q36324'
Note: This function implements the original Soundex algorithm, not the more popular enhanced version (also described by D. Knuth). The difference is that original version discards vowels first and duplicates second, whereas the enhanced version discards duplicates first and vowels second.
expr1 SOUNDS LIKE expr2
This is the same as SOUNDEX(expr1) = SOUNDEX(expr2).
SPACE(N)
Retorna espacios en blanco.
mysql> SELECT SPACE(6);
-> ' '
SUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len), SUBSTRING(str FROM pos FOR len)
Substrae una cadena de otra
mysql> SELECT SUBSTRING('Quadratically',5);
-> 'ratically'
mysql> SELECT SUBSTRING('foobarbar' FROM 4);
-> 'barbar'
mysql> SELECT SUBSTRING('Quadratically',5,6);
-> 'ratica'
mysql> SELECT SUBSTRING('Sakila', -3);
-> 'ila'
mysql> SELECT SUBSTRING('Sakila', -5, 3);
-> 'aki'
mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
-> 'ki'
SUBSTRING_INDEX(str,delim,count)
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
-> 'www.mysql'
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
-> 'mysql.com'
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM([remstr FROM] str)
mysql> SELECT TRIM(' bar ');
-> 'bar'
mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
-> 'barxxx'
mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
-> 'bar'
mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
-> 'barx'
UCASE(str)
UCASE() is a synonym for UPPER().
UNHEX(str)
Performs the inverse operation of HEX(str). That is, it interprets each pair of hexadecimal digits in the argument as a number and converts it to the character represented by the number. The resulting characters are returned as a binary string.
mysql> SELECT UNHEX('4D7953514C');
-> 'MySQL'
mysql> SELECT 0x4D7953514C;
-> 'MySQL'
mysql> SELECT UNHEX(HEX('string'));
-> 'string'
mysql> SELECT HEX(UNHEX('1267'));
-> '1267'
UPPER(str)
mysql> SELECT UPPER('Hej');
-> 'HEJ'
Retorna el valor ASCII de un carcater
mysql> SELECT ASCII('2');
-> 50
mysql> SELECT ASCII(2);
-> 50
mysql> SELECT ASCII('dx');
-> 100
BIN(N)
Retorna valor binario de un decimal
mysql> SELECT BIN(12);
-> '1100'
BIT_LENGTH(str)
Retorna la longitud en Bits de un caracter
mysql> SELECT BIT_LENGTH('text');
-> 32
CHAR(N,... [USING charset_name])
Combierte numerico a caracter
mysql> SELECT CHAR(77,121,83,81,'76');
-> 'MySQL'
mysql> SELECT CHAR(77,77.3,'77.3');
-> 'MMM'
mysql> SELECT HEX(CHAR(1,0)), HEX(CHAR(256));
+----------------+----------------+
| HEX(CHAR(1,0)) | HEX(CHAR(256)) |
+----------------+----------------+
| 0100 | 0100 |
+----------------+----------------+
mysql> SELECT HEX(CHAR(1,0,0)), HEX(CHAR(256*256));
+------------------+--------------------+
| HEX(CHAR(1,0,0)) | HEX(CHAR(256*256)) |
+------------------+--------------------+
| 010000 | 010000 |
+------------------+--------------------+
mysql> SELECT CHARSET(CHAR(0x65)), CHARSET(CHAR(0x65 USING utf8));
+---------------------+--------------------------------+
| CHARSET(CHAR(0x65)) | CHARSET(CHAR(0x65 USING utf8)) |
+---------------------+--------------------------------+
| binary | utf8 |
+---------------------+--------------------------------+
CHAR_LENGTH(str)
Retorna la longitud del caracter
CHARACTER_LENGTH(str)
CHARACTER_LENGTH() is a synonym for CHAR_LENGTH().
CONCAT(str1,str2,...)
Concatena caracteres o cadenas
SELECT CONCAT(CAST(int_col AS CHAR), char_col);
CONCAT() returns NULL if any argument is NULL.
mysql> SELECT CONCAT('My', 'S', 'QL');
-> 'MySQL'
mysql> SELECT CONCAT('My', NULL, 'QL');
-> NULL
mysql> SELECT CONCAT(14.3);
-> '14.3'
CONCAT_WS(separator,str1,str2,...)
Concatena cadenas, el primer parametro es el separador de la concatenacion
mysql> SELECT CONCAT_WS(',','First name','Second name','Last Name');
-> 'First name,Second name,Last Name'
mysql> SELECT CONCAT_WS(',','First name',NULL,'Last Name');
-> 'First name,Last Name'
CONCAT_WS() does not skip empty strings. However, it does skip any NULL values after the separator argument.
CONV(N,from_base,to_base)
Combierte de un sistema numerico a otro, el primer parámetro es el carácter el segundo de cual se convertira y el tercero el sistema que se devolvera
mysql> SELECT CONV('a',16,2);
-> '1010'
mysql> SELECT CONV('6E',18,8);
-> '172'
mysql> SELECT CONV(-17,10,-18);
-> '-H'
mysql> SELECT CONV(10+'10'+'10'+0xa,10,10);
-> '40'
ELT(N,str1,str2,str3,...)
Retorna el caracter o cadena que se establesca como primer parametro
mysql> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
-> 'ej'
mysql> SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo');
-> 'foo'
EXPORT_SET(bits,on,off[,separator[,number_of_bits]])
Returns a string such that for every bit set in the value bits, you get an on string and for every reset bit, you get an off string. Bits in bits are examined from right to left (from low-order to high-order bits). Strings are added to the result from left to right, separated by the separator string (the default being the comma character ‘,’). The number of bits examined is given by number_of_bits (defaults to 64).
mysql> SELECT EXPORT_SET(5,'Y','N',',',4);
-> 'Y,N,Y,N'
mysql> SELECT EXPORT_SET(6,'1','0',',',10);
-> '0,1,1,0,0,0,0,0,0,0'
FIELD(str,str1,str2,str3,...)
Retorna el numero de repeticiones que tiene el primer parametro
mysql> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
-> 2
mysql> SELECT FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');
-> 0
FIND_IN_SET(str,strlist)
Retorna el numero de matriz donde se encuentre el primer parametro
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
-> 2
FORMAT(X,D)
Formato de decimales, el segundo parametro es el numero de decimales
mysql> SELECT FORMAT(12332.123456, 4);
-> '12,332.1235'
mysql> SELECT FORMAT(12332.1,4);
-> '12,332.1000'
mysql> SELECT FORMAT(12332.2,0);
-> '12,332'
HEX(N_or_S)
If N_or_S is a number, returns a string representation of the hexadecimal value of N, where N is a longlong (BIGINT) number. This is equivalent to CONV(N,10,16).
If N_or_S is a string, returns a hexadecimal string representation of N_or_S where each character in N_or_S is converted to two hexadecimal digits.
mysql> SELECT HEX(255);
-> 'FF'
mysql> SELECT 0x616263;
-> 'abc'
mysql> SELECT HEX('abc');
-> 616263
INSERT(str,pos,len,newstr)
Inserta una cadena en otra
mysql> SELECT INSERT('Quadratic', 3, 4, 'What');
-> 'QuWhattic'
mysql> SELECT INSERT('Quadratic', -1, 4, 'What');
-> 'Quadratic'
mysql> SELECT INSERT('Quadratic', 3, 100, 'What');
-> 'QuWhat'
INSTR(str,substr)
Retorna la posicion buscada en la cadena
mysql> SELECT INSTR('foobarbar', 'bar');
-> 4
mysql> SELECT INSTR('xbar', 'foobar');
-> 0
LCASE(str)
LCASE() Combierte mayusculas a minusculas al igual que LOWER().
LEFT(str,len)
Subtrae caracteres de la izquierda
mysql> SELECT LEFT('foobarbar', 5);
-> 'fooba'
LENGTH(str)
Retorna el numero de caracteres
mysql> SELECT LENGTH('text');
-> 4
LOAD_FILE(file_name)
Reads the file and returns the file contents as a string. To use this function, the file must be located on the server host, you must specify the full pathname to the file, and you must have the FILE privilege. The file must be readable by all and its size less than max_allowed_packet bytes.
If the file does not exist or cannot be read because one of the preceding conditions is not satisfied, the function returns NULL.
As of MySQL 5.1.6, the character_set_filesystem system variable controls interpretation of filenames that are given as literal strings.
mysql> UPDATE t
SET blob_col=LOAD_FILE('/tmp/picture')
WHERE id=1;
LOCATE(substr,str), LOCATE(substr,str,pos)
Retorna la posicion de la cadena
mysql> SELECT LOCATE('bar', 'foobarbar');
-> 4
mysql> SELECT LOCATE('xbar', 'foobar');
-> 0
mysql> SELECT LOCATE('bar', 'foobarbar', 5);
-> 7
LOWER(str)
Combierte mayusculas a minusculas
mysql> SELECT LOWER('QUADRATICALLY');
-> 'quadratically'
LPAD(str,len,padstr)
Returns the string str, left-padded with the string padstr to a length of len characters. If str is longer than len, the return value is shortened to len characters.
mysql> SELECT LPAD('hi',4,'??');
-> '??hi'
mysql> SELECT LPAD('hi',1,'??');
-> 'h'
LTRIM(str)
Quita espacios en blanco
mysql> SELECT LTRIM(' barbar');
-> 'barbar'
MAKE_SET(bits,str1,str2,...)
Returns a set value (a string containing substrings separated by ‘,’ characters) consisting of the strings that have the corresponding bit in bits set. str1 corresponds to bit 0, str2 to bit 1, and so on. NULL values in str1, str2, ... are not appended to the result.
mysql> SELECT MAKE_SET(1,'a','b','c');
-> 'a'
mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world');
-> 'hello,world'
mysql> SELECT MAKE_SET(1 | 4,'hello','nice',NULL,'world');
-> 'hello'
mysql> SELECT MAKE_SET(0,'a','b','c');
-> ''
MID(str,pos,len)
MID(str,pos,len) is a synonym for SUBSTRING(str,pos,len).
OCT(N)
Returns a string representation of the octal value of N, where N is a longlong (BIGINT) number. This is equivalent to CONV(N,10,8). Returns NULL if N is NULL.
mysql> SELECT OCT(12);
-> '14'
OCTET_LENGTH(str)
OCTET_LENGTH() is a synonym for LENGTH().
ORD(str)
If the leftmost character of the string str is a multi-byte character, returns the code for that character, calculated from the numeric values of its constituent bytes using this formula:
(1st byte code)
+ (2nd byte code × 256)
+ (3rd byte code × 2562) ...
If the leftmost character is not a multi-byte character, ORD() returns the same value as the ASCII() function.
mysql> SELECT ORD('2');
-> 50
POSITION(substr IN str)
POSITION(substr IN str) is a synonym for LOCATE(substr,str).
QUOTE(str)
Quotes a string to produce a result that can be used as a properly escaped data value in an SQL statement. The string is returned enclosed by single quotes and with each instance of single quote (‘'’), backslash (‘\’), ASCII NUL, and Control-Z preceded by a backslash. If the argument is NULL, the return value is the word “NULL” without enclosing single quotes.
mysql> SELECT QUOTE('Don\'t!');
-> 'Don\'t!'
mysql> SELECT QUOTE(NULL);
-> NULL
REPEAT(str,count)
Repite cadenas
mysql> SELECT REPEAT('MySQL', 3);
-> 'MySQLMySQLMySQL'
REPLACE(str,from_str,to_str)
Remplaza una cadena por otra
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
-> 'WwWwWw.mysql.com'
REVERSE(str)
Invierte una cadena
mysql> SELECT REVERSE('abc');
-> 'cba'
RIGHT(str,len)
Retorna cadena de derecha a izquierda
mysql> SELECT RIGHT('foobarbar', 4);
-> 'rbar'
RPAD(str,len,padstr)
Returns the string str, right-padded with the string padstr to a length of len characters. If str is longer than len, the return value is shortened to len characters.
mysql> SELECT RPAD('hi',5,'?');
-> 'hi???'
mysql> SELECT RPAD('hi',1,'?');
-> 'h'
RTRIM(str)
Quita espacios en blanco por la izquierda
mysql> SELECT RTRIM('barbar ');
-> 'barbar'
SOUNDEX(str)
Returns a soundex string from str. Two strings that sound almost the same should have identical soundex strings. A standard soundex string is four characters long, but the SOUNDEX() function returns an arbitrarily long string. You can use SUBSTRING() on the result to get a standard soundex string. All non-alphabetic characters in str are ignored. All international alphabetic characters outside the A-Z range are treated as vowels.
Important: When using SOUNDEX(), you should be aware of the following limitations:
This function, as currently implemented, is intended to work well with strings that are in the English language only. Strings in other languages may not produce reliable results.
This function is not guaranteed to provide consistent results with strings that use multi-byte character sets, including utf-8.
We hope to remove these limitations in a future release. See Bug#22638 for more information.
mysql> SELECT SOUNDEX('Hello');
-> 'H400'
mysql> SELECT SOUNDEX('Quadratically');
-> 'Q36324'
Note: This function implements the original Soundex algorithm, not the more popular enhanced version (also described by D. Knuth). The difference is that original version discards vowels first and duplicates second, whereas the enhanced version discards duplicates first and vowels second.
expr1 SOUNDS LIKE expr2
This is the same as SOUNDEX(expr1) = SOUNDEX(expr2).
SPACE(N)
Retorna espacios en blanco.
mysql> SELECT SPACE(6);
-> ' '
SUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len), SUBSTRING(str FROM pos FOR len)
Substrae una cadena de otra
mysql> SELECT SUBSTRING('Quadratically',5);
-> 'ratically'
mysql> SELECT SUBSTRING('foobarbar' FROM 4);
-> 'barbar'
mysql> SELECT SUBSTRING('Quadratically',5,6);
-> 'ratica'
mysql> SELECT SUBSTRING('Sakila', -3);
-> 'ila'
mysql> SELECT SUBSTRING('Sakila', -5, 3);
-> 'aki'
mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
-> 'ki'
SUBSTRING_INDEX(str,delim,count)
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
-> 'www.mysql'
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
-> 'mysql.com'
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM([remstr FROM] str)
mysql> SELECT TRIM(' bar ');
-> 'bar'
mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
-> 'barxxx'
mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
-> 'bar'
mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
-> 'barx'
UCASE(str)
UCASE() is a synonym for UPPER().
UNHEX(str)
Performs the inverse operation of HEX(str). That is, it interprets each pair of hexadecimal digits in the argument as a number and converts it to the character represented by the number. The resulting characters are returned as a binary string.
mysql> SELECT UNHEX('4D7953514C');
-> 'MySQL'
mysql> SELECT 0x4D7953514C;
-> 'MySQL'
mysql> SELECT UNHEX(HEX('string'));
-> 'string'
mysql> SELECT HEX(UNHEX('1267'));
-> '1267'
UPPER(str)
mysql> SELECT UPPER('Hej');
-> 'HEJ'
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';
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
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'
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 Emirates | ar_BH : Arabic - Bahrain |
ar_DZ : Arabic - Algeria | ar_EG : Arabic - Egypt |
ar_IN : Arabic - Iran | ar_IQ : Arabic - Iraq |
ar_JO : Arabic - Jordan | ar_KW : Arabic - Kuwait |
ar_LB : Arabic - Lebanon | ar_LY : Arabic - Libya |
ar_MA : Arabic - Morocco | ar_OM : Arabic - Oman |
ar_QA : Arabic - Qatar | ar_SA : Arabic - Saudi Arabia |
ar_SD : Arabic - Sudan | ar_SY : Arabic - Syria |
ar_TN : Arabic - Tunisia | ar_YE : Arabic - Yemen |
be_BY : Belarusian - Belarus | bg_BG : Bulgarian - Bulgaria |
ca_ES : Catalan - Catalan | cs_CZ : Czech - Czech Republic |
da_DK : Danish - Denmark | de_AT : German - Austria |
de_BE : German - Belgium | de_CH : German - Switzerland |
de_DE : German - Germany | de_LU : German - Luxembourg |
EE : Estonian - Estonia | en_AU : English - Australia |
en_CA : English - Canada | en_GB : English - United Kingdom |
en_IN : English - India | en_NZ : English - New Zealand |
en_PH : English - Philippines | en_US : English - United States |
en_ZA : English - South Africa | en_ZW : English - Zimbabwe |
es_AR : Spanish - Argentina | es_BO : Spanish - Bolivia |
es_CL : Spanish - Chile | es_CO : Spanish - Columbia |
es_CR : Spanish - Costa Rica | es_DO : Spanish - Dominican Republic |
es_EC : Spanish - Ecuador | es_ES : Spanish - Spain |
es_GT : Spanish - Guatemala | es_HN : Spanish - Honduras |
es_MX : Spanish - Mexico | es_NI : Spanish - Nicaragua |
es_PA : Spanish - Panama | es_PE : Spanish - Peru |
es_PR : Spanish - Puerto Rico | es_PY : Spanish - Paraguay |
es_SV : Spanish - El Salvador | es_US : Spanish - United States |
es_UY : Spanish - Uruguay | es_VE : Spanish - Venezuela |
eu_ES : Basque - Basque | fi_FI : Finnish - Finland |
fo_FO : Faroese - Faroe Islands | fr_BE : French - Belgium |
fr_CA : French - Canada | fr_CH : French - Switzerland |
fr_FR : French - France | fr_LU : French - Luxembourg |
gl_ES : Galician - Galician | gu_IN : Gujarati - India |
he_IL : Hebrew - Israel | hi_IN : Hindi - India |
hr_HR : Croatian - Croatia | hu_HU : Hungarian - Hungary |
id_ID : Indonesian - Indonesia | is_IS : Icelandic - Iceland |
it_CH : Italian - Switzerland | it_IT : Italian - Italy |
ja_JP : Japanese - Japan | ko_KR : Korean - Korea |
lt_LT : Lithuanian - Lithuania | lv_LV : Latvian - Latvia |
mk_MK : Macedonian - FYROM | mn_MN : Mongolia - Mongolian |
ms_MY : Malay - Malaysia | nb_NO : Norwegian(Bokml) - Norway |
nl_BE : Dutch - Belgium | nl_NL : Dutch - The Netherlands |
no_NO : Norwegian - Norway | pl_PL : Polish - Poland |
pt_BR : Portugese - Brazil | pt_PT : Portugese - Portugal |
ro_RO : Romanian - Romania | ru_RU : Russian - Russia |
ru_UA : Russian - Ukraine | sk_SK : Slovak - Slovakia |
sl_SI : Slovenian - Slovenia | sq_AL : Albanian - Albania |
sr_YU : Serbian - Yugoslavia | sv_FI : Swedish - Finland |
sv_SE : Swedish - Sweden | ta_IN : Tamil - India |
te_IN : Telugu - India | th_TH : Thai - Thailand |
tr_TR : Turkish - Turkey | uk_UA : Ukrainian - Ukraine |
ur_PK : Urdu - Pakistan | vi_VN : Vietnamese - Vietnam |
zh_CN : Chinese - Peoples Republic of China | zh_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
Especificador | Descripción |
%a | Día de semana abreviado (Sun ..Sat ) |
%b | Mes abreviado (Jan ..Dec ) |
%c | Mes, numérico (0 ..12 ) |
%D | Día del mes con sufijo inglés (0th , 1st , 2nd , 3rd , ...) |
%d | Día del mes numérico (00 ..31 ) |
%e | Día del mes numérico (0 ..31 ) |
%f | Microsegundos (000000 ..999999 ) |
%H | Hora (00 ..23 ) |
%h | Hora (01 ..12 ) |
%I | Hora (01 ..12 ) |
%i | Minutos, numérico (00 ..59 ) |
%j | Día del año (001 ..366 ) |
%k | Hora (0 ..23 ) |
%l | Hora (1 ..12 ) |
%M | Nombre mes (January ..December ) |
%m | Mes, numérico (00 ..12 ) |
%p | AM o PM |
%r | Hora, 12 horas (hh:mm:ss seguido de AM o PM ) |
%S | Segundos (00 ..59 ) |
%s | Segundos (00 ..59 ) |
%T | Hora, 24 horas (hh:mm:ss ) |
%U | Semana (00 ..53 ), donde domingo es el primer día de la semana |
%u | Semana (00 ..53 ), donde lunes es el primer día de la semana |
%V | Semana (01 ..53 ), donde domingo es el primer día de la semana; usado con %X |
%v | Semana (01 ..53 ), donde lunes es el primer día de la semana; usado con %x |
%W | Nombre día semana (Sunday ..Saturday ) |
%w | Día de la semana (0 =Sunday..6 =Saturday) |
%X | Año para la semana donde domingo es el primer día de la semana, numérico, cuatro dígitos; usado con %V |
%x | Año para la semana, donde lunes es el primer día de la semana, numérico, cuatro dígitos; usado con %v |
%Y | Año, numérico, cuatro dígitos |
%y | Añ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 :
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
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 | |||
Modo | 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 |
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
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
Suscribirse a:
Entradas (Atom)