MySQL - funções de data e hora

Sr. Não. Nome e Descrição
1 ADDDATE ()

Adiciona datas

2 TEMPO EXTRA()

Adiciona tempo

3 CONVERT_TZ ()

Converte de um fuso horário para outro

4 CURDATE ()

Retorna a data atual

5 CURRENT_DATE (), CURRENT_DATE

Sinônimos para CURDATE ()

6 CURRENT_TIME (), CURRENT_TIME

Sinônimos para CURTIME ()

7 CURRENT_TIMESTAMP (), CURRENT_TIMESTAMP

Sinônimos para AGORA ()

8 CURTIME ()

Retorna a hora atual

9 DATE_ADD ()

Adiciona duas datas

10 FORMATO DE DATA()

Formata data conforme especificado

11 DATE_SUB ()

Subtrai duas datas

12 ENCONTRO()

Extrai a parte da data de uma data ou expressão datetime

13 DATEDIFF ()

Subtrai duas datas

14 DIA()

Sinônimo de DAYOFMONTH ()

15 DAYNAME ()

Retorna o nome do dia da semana

16 DIA DO MÊS()

Retorna o dia do mês (1-31)

17 DIA DA SEMANA()

Retorna o índice do dia da semana do argumento

18 DAYOFYEAR ()

Retorna o dia do ano (1-366)

19 EXTRAIR

Extrai parte de uma data

20 FROM_DAYS ()

Converte um número de dia em uma data

21 FROM_UNIXTIME ()

Formata data como um carimbo de data / hora UNIX

22 HORA()

Extrai a hora

23 ÚLTIMO DIA

Retorna o último dia do mês para o argumento

24 LOCALTIME (), LOCALTIME

Sinônimo de AGORA ()

25 LOCALTIMESTAMP, LOCALTIMESTAMP ()

Sinônimo de AGORA ()

26 MAKEDATE ()

Cria uma data do ano e dia do ano

27 MAKETIME

MAKETIME ()

28 MICROSEGUNDO ()

Retorna os microssegundos do argumento

29 MINUTO()

Retorna o minuto do argumento

30 MÊS()

Retorna o mês a partir da data passada

31 MONTHNAME ()

Retorna o nome do mês

32 AGORA()

Retorna a data e hora atuais

33 PERIOD_ADD ()

Adiciona um período a um ano-mês

34 PERIOD_DIFF ()

Retorna o número de meses entre os períodos

35 TRIMESTRE()

Retorna o trimestre de um argumento de data

36 SEC_TO_TIME ()

Converte segundos para o formato 'HH: MM: SS'

37 SEGUNDO()

Retorna o segundo (0-59)

38 STR_DA_DATA ()

Converte uma string em uma data

39 SUBDATE ()

Quando chamado com três argumentos, um sinônimo para DATE_SUB ()

40 SUBTIME ()

Subtrai tempos

41 SYSDATE ()

Retorna a hora em que a função é executada

42 TIME_FORMAT ()

Formatos como tempo

43 TIME_TO_SEC ()

Retorna o argumento convertido em segundos

44 TEMPO()

Extrai a parte do tempo da expressão passada

45 TIMEDIFF ()

Subtrai o tempo

46 TIMESTAMP ()

Com um único argumento, esta função retorna a expressão de data ou data e hora. Com dois argumentos, a soma dos argumentos

47 TIMESTAMPADD ()

Adiciona um intervalo a uma expressão datetime

48 TIMESTAMPDIFF ()

Subtrai um intervalo de uma expressão datetime

49 TO_DAYS ()

Retorna o argumento da data convertido em dias

50 UNIX_TIMESTAMP ()

Retorna um carimbo de data / hora UNIX

51 UTC_DATE ()

Retorna a data UTC atual

52 UTC_TIME ()

Retorna a hora UTC atual

53 UTC_TIMESTAMP ()

Retorna a data e hora UTC atual

54 SEMANA()

Retorna o número da semana

55 WEEKDAY ()

Retorna o índice do dia da semana

56 WEEKOFYEAR ()

Retorna a semana do calendário da data (1-53)

57 ANO()

Retorna o ano

58 SEMANA ANO ()

Retorna o ano e a semana

ADDDATE (data, unidade expr INTERVAL), ADDDATE (expr, dias)

Quando chamado com a forma INTERVAL do segundo argumento, ADDDATE () é um sinônimo para DATE_ADD (). A função relacionada SUBDATE () é um sinônimo para DATE_SUB (). Para obter informações sobre o argumento da unidade INTERVAL, consulte a discussão para DATE_ADD ().

mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
|         DATE_ADD('1998-01-02', INTERVAL 31 DAY)         |
+---------------------------------------------------------+
|                       1998-02-02                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
|          ADDDATE('1998-01-02', INTERVAL 31 DAY)         |
+---------------------------------------------------------+
|                       1998-02-02                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

Quando chamado com a forma de dias do segundo argumento, o MySQL o trata como um número inteiro de dias a ser adicionado a expr.

mysql> SELECT ADDDATE('1998-01-02', 31);
+---------------------------------------------------------+
|         DATE_ADD('1998-01-02', INTERVAL 31 DAY)         |
+---------------------------------------------------------+
|                       1998-02-02                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ADDTIME (expr1, expr2)

ADDTIME () adiciona expr2 a expr1 e retorna o resultado. expr1 é uma expressão de tempo ou data e hora e expr2 é uma expressão de tempo.

mysql> SELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');
+---------------------------------------------------------+
| DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002') |
+---------------------------------------------------------+
|               1998-01-02 01:01:01.000001                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CONVERT_TZ (dt, from_tz, to_tz)

Isso converte um valor datetime dt do fuso horário fornecido por from_tz para o fuso horário fornecido por to_tz e retorna o valor resultante. Esta função retorna NULL se os argumentos forem inválidos.

mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
+---------------------------------------------------------+
| CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')           |
+---------------------------------------------------------+
|                 2004-01-01 13:00:00                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');
+---------------------------------------------------------+
| CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00')     |
+---------------------------------------------------------+
|                 2004-01-01 22:00:00                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CURDATE ()

Retorna a data atual como um valor no formato 'AAAA-MM-DD' ou AAAAMMDD, dependendo se a função é usada em uma string ou contexto numérico.

mysql> SELECT CURDATE();
+---------------------------------------------------------+
|                       CURDATE()                         |
+---------------------------------------------------------+
|                      1997-12-15                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CURDATE() + 0;
+---------------------------------------------------------+
|                     CURDATE() + 0                       |
+---------------------------------------------------------+
|                        19971215                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CURRENT_DATE e CURRENT_DATE ()

CURRENT_DATE e CURRENT_DATE () são sinônimos para CURDATE ()

CURTIME ()

Retorna a hora atual como um valor no formato 'HH: MM: SS' ou HHMMSS, dependendo se a função é usada em uma string ou contexto numérico. O valor é expresso no fuso horário atual.

mysql> SELECT CURTIME();
+---------------------------------------------------------+
|                        CURTIME()                        |
+---------------------------------------------------------+
|                        23:50:26                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CURTIME() + 0;
+---------------------------------------------------------+
|                      CURTIME() + 0                      |
+---------------------------------------------------------+
|                         235026                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CURRENT_TIME e CURRENT_TIME ()

CURRENT_TIME e CURRENT_TIME () são sinônimos para CURTIME ().

CURRENT_TIMESTAMP e CURRENT_TIMESTAMP ()

CURRENT_TIMESTAMP e CURRENT_TIMESTAMP () são sinônimos para NOW ().

DATA (expr)

Extrai a parte da data da data ou expressão datetime expr.

mysql> SELECT DATE('2003-12-31 01:02:03');
+---------------------------------------------------------+
|              DATE('2003-12-31 01:02:03')                |
+---------------------------------------------------------+
|                     2003-12-31                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DATEDIFF (expr1, expr2)

DATEDIFF () retorna expr1. expr2 expresso como um valor em dias de uma data a outra. expr1 e expr2 são expressões de data ou data e hora. Apenas as partes da data dos valores são usadas no cálculo.

mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
+---------------------------------------------------------+
|       DATEDIFF('1997-12-31 23:59:59','1997-12-30')      |
+---------------------------------------------------------+
|                             1                           |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DATE_ADD (data, unidade expr INTERVAL), DATE_SUB (data, unidade expr INTERVAL)

Essas funções realizam aritmética de data. data é um valor DATETIME ou DATE especificando a data de início. expr é uma expressão que especifica o valor do intervalo a ser adicionado ou subtraído da data de início. expr é uma string; pode começar com '-' para intervalos negativos. unidade é uma palavra-chave que indica as unidades nas quais a expressão deve ser interpretada.

A palavra-chave INTERVAL e o especificador de unidade não diferenciam maiúsculas de minúsculas.

A tabela a seguir mostra a forma esperada do argumento expr para cada valor de unidade;

unidade Value ExpectedexprFormat
MICROSEGUNDO MICROSEGUNDOS
SEGUNDO SEGUNDOS
MINUTO MINUTOS
HORA HORAS
DIA DIAS
SEMANA SEMANAS
MÊS MESES
TRIMESTRE QUARTERS
ANO ANOS
SECOND_MICROSECOND 'SECONDS.MICROSECONDS'
MINUTE_MICROSECOND 'MINUTES.MICROSECONDS'
MINUTE_SECOND 'MINUTES: SECONDS'
HOUR_MICROSECOND 'HOURS.MICROSECONDS'
HOUR_SECOND 'HOURS: MINUTES: SECONDS'
HOUR_MINUTE 'HOURS: MINUTES'
DAY_MICROSECOND 'DIAS.MICROSECONDS'
DAY_SECOND 'DAYS HOURS: MINUTES: SECONDS'
DAY_MINUTE 'DAYS HOURS: MINUTES'
DAY_HOUR 'DIAS HORAS'
ANO MÊS 'ANOS-MESES'

Os valores QUARTER e WEEK estão disponíveis a partir do MySQL 5.0.0.

mysql> SELECT DATE_ADD('1997-12-31 23:59:59', 
   -> INTERVAL '1:1' MINUTE_SECOND);
+---------------------------------------------------------+
|       DATE_ADD('1997-12-31 23:59:59', INTERVAL...       |
+---------------------------------------------------------+
|                  1998-01-01 00:01:00                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR);
+---------------------------------------------------------+
|         DATE_ADD('1999-01-01', INTERVAL 1 HOUR)         |
+---------------------------------------------------------+
|                   1999-01-01 01:00:00                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DATE_FORMAT (data, formato)

Formata o valor da data de acordo com a string de formato.

Os seguintes especificadores podem ser usados ​​na string de formato. O .%. caractere é necessário antes dos caracteres do especificador de formato.

S. No. Especificador e descrição
1

%a

Nome abreviado do dia da semana (dom .. sáb)

2

%b

Nome abreviado do mês (Jan..Dez)

3

%c

Mês, numérico (0..12)

4

%D

Dia do mês com sufixo inglês (0º, 1º, 2º, 3º,.)

5

%d

Dia do mês, numérico (00..31)

6

%e

Dia do mês, numérico (0..31)

7

%f

Microssegundos (000000..999999)

8

%H

Hora (00..23)

9

%h

Hora (01..12)

10

%I

Hora (01..12)

11

%i

Minutos, numérico (00..59)

12

%j

Dia do ano (001..366)

13

%k

Hora (0..23)

14

%l

Hora (1..12)

15

%M

Nome do mês (janeiro .. dezembro)

16

%m

Mês, numérico (00..12)

17

%p

AM ou PM

18

%r

Tempo, 12 horas (hh: mm: ss seguido por AM ou PM)

19

%S

Segundos (00..59)

20

%s

Segundos (00..59)

21

%T

Tempo, 24 horas (hh: mm: ss)

22

%U

Semana (00..53), onde domingo é o primeiro dia da semana

23

%u

Semana (00..53), onde segunda-feira é o primeiro dia da semana

24

%V

Semana (01..53), onde domingo é o primeiro dia da semana; usado com% X

25

%v

Semana (01..53), onde segunda-feira é o primeiro dia da semana; usado com% x

26

%W

Nome do dia da semana (domingo .. sábado)

27

%w

Dia da semana (0 = domingo..6 = sábado)

28

%X

Ano para a semana em que domingo é o primeiro dia da semana, numérico, quatro dígitos; usado com% V

29

%x

Ano para a semana, onde segunda-feira é o primeiro dia da semana, numérico, quatro dígitos; usado com% v

30

%Y

Ano, numérico, quatro dígitos

31

%y

Ano, numérico (dois dígitos)

32

%

Um literal.%. personagem

33

%x

x, para any.x. não listado acima

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
+---------------------------------------------------------+
|     DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y')      |
+---------------------------------------------------------+
|                 Saturday October 1997                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00'
    -> '%H %k %I %r %T %S %w');
+---------------------------------------------------------+
|          DATE_FORMAT('1997-10-04 22:23:00.......        |
+---------------------------------------------------------+
|            22 22 10 10:23:00 PM 22:23:00 00 6           |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DATE_SUB (data, unidade expr INTERVAL)

Isso é semelhante à função DATE_ADD ().

DAY (data)

DAY () é sinônimo de DAYOFMONTH ().

DAYNAME (data)

Retorna o nome do dia da semana para a data.

mysql> SELECT DAYNAME('1998-02-05');
+---------------------------------------------------------+
|                 DAYNAME('1998-02-05')                   |
+---------------------------------------------------------+
|                       Thursday                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DAYOFMONTH (data)

Retorna o dia do mês para a data, no intervalo de 0 a 31.

mysql> SELECT DAYOFMONTH('1998-02-03');
+---------------------------------------------------------+
|               DAYOFMONTH('1998-02-03')                  |
+---------------------------------------------------------+
|                          3                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DAYOFWEEK (data)

Retorna o índice do dia da semana para a data (1 = domingo, 2 = segunda-feira,., 7 = sábado). Esses valores de índice correspondem ao padrão ODBC.

mysql> SELECT DAYOFWEEK('1998-02-03');
+---------------------------------------------------------+
|                 DAYOFWEEK('1998-02-03')                 |
+---------------------------------------------------------+
|                           3                             |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DAYOFYEAR (data)

Retorna o dia do ano para a data, no intervalo de 1 a 366.

mysql> SELECT DAYOFYEAR('1998-02-03');
+---------------------------------------------------------+
|                 DAYOFYEAR('1998-02-03')                 |
+---------------------------------------------------------+
|                           34                            |
+---------------------------------------------------------+
1 row in set (0.00 sec)

EXTRACT (unidade DE data)

A função EXTRACT () usa os mesmos tipos de especificadores de unidade que DATE_ADD () ou DATE_SUB (), mas extrai partes da data em vez de realizar aritmética de data.

mysql> SELECT EXTRACT(YEAR FROM '1999-07-02');
+---------------------------------------------------------+
|             EXTRACT(YEAR FROM '1999-07-02')             |
+---------------------------------------------------------+
|                           1999                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03');
+---------------------------------------------------------+
|      EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03')     |
+---------------------------------------------------------+
|                          199907                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

FROM_DAYS (N)

Dado um número de dia N, retorna um valor DATE.

mysql> SELECT FROM_DAYS(729669);
+---------------------------------------------------------+
|                    FROM_DAYS(729669)                    |
+---------------------------------------------------------+
|                       1997-10-07                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

Use FROM_DAYS () com cuidado em datas antigas. Não se destina ao uso com valores anteriores ao advento do calendário gregoriano (1582).

FROM_UNIXTIME (unix_timestamp)

FROM_UNIXTIME (unix_timestamp, formato)

Retorna uma representação do argumento unix_timestamp como um valor no formato 'AAAA-MM-DD HH: MM: SS' ou AAAAMMDDHHMMSS, dependendo se a função é usada em uma string ou contexto numérico. O valor é expresso no fuso horário atual. unix_timestamp é um valor de carimbo de data / hora interno, como o produzido pela função UNIX_TIMESTAMP ().

Se o formato for fornecido, o resultado será formatado de acordo com a string de formato, que é usada da mesma forma listada na entrada para a função DATE_FORMAT ().

mysql> SELECT FROM_UNIXTIME(875996580);
+---------------------------------------------------------+
|                FROM_UNIXTIME(875996580)                 |
+---------------------------------------------------------+
|                  1997-10-04 22:23:00                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

HORA (hora)

Retorna a hora para a hora. O intervalo do valor de retorno é de 0 a 23 para valores de hora do dia. No entanto, o intervalo de valores TIME é, na verdade, muito maior, então HOUR pode retornar valores maiores do que 23.

mysql> SELECT HOUR('10:05:03');
+---------------------------------------------------------+
|                    HOUR('10:05:03')                     |
+---------------------------------------------------------+
|                           10                            |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LAST_DAY (data)

Obtém um valor de data ou data e hora e retorna o valor correspondente para o último dia do mês. Retorna NULL se o argumento for inválido.

mysql> SELECT LAST_DAY('2003-02-05');
+---------------------------------------------------------+
|                 LAST_DAY('2003-02-05')                  |
+---------------------------------------------------------+
|                      2003-02-28                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LOCALTIME e LOCALTIME ()

LOCALTIME e LOCALTIME () são sinônimos para NOW ().

LOCALTIMESTAMP e LOCALTIMESTAMP ()

LOCALTIMESTAMP e LOCALTIMESTAMP () são sinônimos para NOW ().

MAKEDATE (ano, dia do ano)

Retorna uma data, dados os valores de ano e dia do ano. dayofyear deve ser maior que 0 ou o resultado será NULL.

mysql> SELECT MAKEDATE(2001,31), MAKEDATE(2001,32);
+---------------------------------------------------------+
|           MAKEDATE(2001,31), MAKEDATE(2001,32)          |
+---------------------------------------------------------+
|               '2001-01-31', '2001-02-01'                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MAKETIME (hora, minuto, segundo)

Retorna um valor de tempo calculado a partir dos argumentos de hora, minuto e segundo.

mysql> SELECT MAKETIME(12,15,30);
+---------------------------------------------------------+
|                    MAKETIME(12,15,30)                   |
+---------------------------------------------------------+
|                       '12:15:30'                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MICROSEGUNDO (expr)

Retorna os microssegundos da expressão de hora ou data e hora expr como um número no intervalo de 0 a 999999.

mysql> SELECT MICROSECOND('12:00:00.123456');
+---------------------------------------------------------+
|             MICROSECOND('12:00:00.123456')              |
+---------------------------------------------------------+
|                        123456                           |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MINUTE (hora)

Retorna o minuto para hora, no intervalo de 0 a 59.

mysql> SELECT MINUTE('98-02-03 10:05:03');
+---------------------------------------------------------+
|             MINUTE('98-02-03 10:05:03')                 |
+---------------------------------------------------------+
|                           5                             |
+---------------------------------------------------------+
1 row in set (0.00 sec)

Data do mês)

Retorna o mês da data, no intervalo de 0 a 12.

mysql> SELECT MONTH('1998-02-03')
+---------------------------------------------------------+
|                  MONTH('1998-02-03')                    |
+---------------------------------------------------------+
|                           2                             |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MONTHNAME (data)

Retorna o nome completo do mês para a data.

mysql> SELECT MONTHNAME('1998-02-05');
+---------------------------------------------------------+
|                MONTHNAME('1998-02-05')                  |
+---------------------------------------------------------+
|                       February                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

AGORA()

Retorna a data e hora atuais como um valor no formato 'AAAA-MM-DD HH: MM: SS' ou AAAAMMDDHHMMSS, dependendo se a função é usada em uma string ou contexto numérico. O valor é expresso no fuso horário atual.

mysql> SELECT NOW();
+---------------------------------------------------------+
|                         NOW()                           |
+---------------------------------------------------------+
|                 1997-12-15 23:50:26                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

PERIOD_ADD (P, N)

Adiciona N meses ao período P (no formato YYMM ou YYYYMM). Retorna um valor no formato AAAAMM. Observe que o argumento de período P não é um valor de data.

mysql> SELECT PERIOD_ADD(9801,2);
+---------------------------------------------------------+
|                  PERIOD_ADD(9801,2)                     |
+---------------------------------------------------------+
|                        199803                           |
+---------------------------------------------------------+
1 row in set (0.00 sec)

PERIOD_DIFF (P1, P2)

Retorna o número de meses entre os períodos P1 e P2. P1 e P2 devem estar no formato YYMM ou YYYYMM. Observe que os argumentos de período P1 e P2 não são valores de data.

mysql> SELECT PERIOD_DIFF(9802,199703);
+---------------------------------------------------------+
|                PERIOD_DIFF(9802,199703)                 |
+---------------------------------------------------------+
|                           11                            |
+---------------------------------------------------------+
1 row in set (0.00 sec)

QUARTER (data)

Retorna o trimestre do ano para a data, no intervalo de 1 a 4.

mysql> SELECT QUARTER('98-04-01');
+---------------------------------------------------------+
|                   QUARTER('98-04-01')                   |
+---------------------------------------------------------+
|                           2                             |
+---------------------------------------------------------+
1 row in set (0.00 sec)

Segundo tempo)

Retorna o segundo para o tempo, no intervalo de 0 a 59.

mysql> SELECT SECOND('10:05:03');
+---------------------------------------------------------+
|                   SECOND('10:05:03')                    |
+---------------------------------------------------------+
|                           3                             |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SEC_TO_TIME (segundos)

Retorna o argumento de segundos, convertido em horas, minutos e segundos, como um valor no formato 'HH: MM: SS' ou HHMMSS, dependendo se a função é usada em uma string ou contexto numérico.

mysql> SELECT SEC_TO_TIME(2378);
+---------------------------------------------------------+
|                   SEC_TO_TIME(2378)                     |
+---------------------------------------------------------+
|                       00:39:38                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

STR_TO_DATE (str, formato)

Este é o inverso da função DATE_FORMAT (). Leva uma string str e um formato de string de formato. STR_TO_DATE () retorna um valor DATETIME se a string de formato contiver partes de data e hora, ou um valor DATE ou TIME se a string contiver apenas partes de data ou hora.

mysql> SELECT STR_TO_DATE('04/31/2004', '%m/%d/%Y');
+---------------------------------------------------------+
|          STR_TO_DATE('04/31/2004', '%m/%d/%Y')          |
+---------------------------------------------------------+
|                       2004-04-31                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SUBDATE (data, unidade expr INTERVAL) e SUBDATE (expr, dias)

Quando invocado com a forma INTERVAL do segundo argumento, SUBDATE () é um sinônimo para DATE_SUB (). Para obter informações sobre o argumento da unidade INTERVAL, consulte a discussão para DATE_ADD ().

mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
|         DATE_SUB('1998-01-02', INTERVAL 31 DAY)         |
+---------------------------------------------------------+
|                        1997-12-02                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT SUBDATE('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
|         SUBDATE('1998-01-02', INTERVAL 31 DAY)          |
+---------------------------------------------------------+
|                       1997-12-02                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SUBTIME (expr1, expr2)

SUBTIME () retorna expr1. expr2 expresso como um valor no mesmo formato que expr1. expr1 é uma expressão de hora ou data e hora e expr2 é uma hora.

mysql> SELECT SUBTIME('1997-12-31 23:59:59.999999',
   -> '1 1:1:1.000002');
+---------------------------------------------------------+
|         SUBTIME('1997-12-31 23:59:59.999999'...         |
+---------------------------------------------------------+
|             1997-12-30 22:58:58.999997                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SYSDATE ()

Retorna a data e hora atuais como um valor no formato 'AAAA-MM-DD HH: MM: SS' ou AAAAMMDDHHMMSS, dependendo se a função é usada em uma string ou contexto numérico.

mysql> SELECT SYSDATE();
+---------------------------------------------------------+
|                      SYSDATE()                          |
+---------------------------------------------------------+
|                 2006-04-12 13:47:44                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIME (expr)

Extrai a parte da hora da expressão de hora ou data e hora expr e a retorna como uma string.

mysql> SELECT TIME('2003-12-31 01:02:03');
+---------------------------------------------------------+
|               TIME('2003-12-31 01:02:03')               |
+---------------------------------------------------------+
|                        01:02:03                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIMEDIFF (expr1, expr2)

TIMEDIFF () retorna expr1. expr2 expresso como um valor de tempo. expr1 e expr2 são expressões de hora ou data e hora, mas ambas devem ser do mesmo tipo.

mysql> SELECT TIMEDIFF('1997-12-31 23:59:59.000001',
   -> '1997-12-30 01:01:01.000002');
+---------------------------------------------------------+
|        TIMEDIFF('1997-12-31 23:59:59.000001'.....       |
+---------------------------------------------------------+
|                    46:58:57.999999                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIMESTAMP (expr), TIMESTAMP (expr1, expr2)

Com um único argumento, esta função retorna a data ou expressão datetime expr como um valor datetime. Com dois argumentos, ele adiciona a expressão de tempo expr2 à expressão de data ou data e hora expr1 e retorna o resultado como um valor de data e hora.

mysql> SELECT TIMESTAMP('2003-12-31');
+---------------------------------------------------------+
|                 TIMESTAMP('2003-12-31')                 |
+---------------------------------------------------------+
|                   2003-12-31 00:00:00                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIMESTAMPADD (unidade, intervalo, datetime_expr)

Adiciona o intervalo de expressão de inteiro à expressão de data ou data e hora datetime_expr. A unidade do intervalo é dada pelo argumento da unidade, que deve ser um dos seguintes valores: FRAC_SECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, TRIMESTRE ou YEAR.

O valor da unidade pode ser especificado usando uma das palavras-chave conforme mostrado ou com um prefixo de SQL_TSI_. Por exemplo, DAY e SQL_TSI_DAY são legais.

mysql> SELECT TIMESTAMPADD(MINUTE,1,'2003-01-02');
+---------------------------------------------------------+
|           TIMESTAMPADD(MINUTE,1,'2003-01-02')           |
+---------------------------------------------------------+
|                  2003-01-02 00:01:00                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIMESTAMPDIFF (unidade, datetime_expr1, datetime_expr2)

Retorna a diferença inteira entre as expressões de data ou data e hora datetime_expr1 e datetime_expr2. A unidade do resultado é fornecida pelo argumento da unidade. Os valores legais para unidade são iguais aos listados na descrição da função TIMESTAMPADD ().

mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
+---------------------------------------------------------+
|      TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01')     |
+---------------------------------------------------------+
|                            3                            |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIME_FORMAT (hora, formato)

Isso é usado como a função DATE_FORMAT (), mas a string de formato pode conter especificadores de formato apenas para horas, minutos e segundos.

Se o valor da hora contiver uma parte da hora maior que 23, os especificadores de formato de hora% H e% k produzirão um valor maior do que o intervalo normal de 0..23. Os outros especificadores de formato de hora produzem o valor de hora módulo 12.

mysql> SELECT TIME_FORMAT('100:00:00', '%H %k %h %I %l');
+---------------------------------------------------------+
|        TIME_FORMAT('100:00:00', '%H %k %h %I %l')       |
+---------------------------------------------------------+
|                    100 100 04 04 4                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIME_TO_SEC (hora)

Retorna o argumento de tempo, convertido em segundos.

mysql> SELECT TIME_TO_SEC('22:23:00');
+---------------------------------------------------------+
|                TIME_TO_SEC('22:23:00')                  |
+---------------------------------------------------------+
|                        80580                            |
+---------------------------------------------------------+
1 row in set (0.00 sec)

Data de hoje)

Dada uma data, retorna um número de dia (o número de dias desde o ano 0).

mysql> SELECT TO_DAYS(950501);
+---------------------------------------------------------+
|                     TO_DAYS(950501)                     |
+---------------------------------------------------------+
|                         728779                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UNIX_TIMESTAMP (), UNIX_TIMESTAMP (data)

Se chamado sem nenhum argumento, retorna um carimbo de data / hora UNIX (segundos desde '1970-01-01 00:00:00' UTC) como um inteiro sem sinal. Se UNIX_TIMESTAMP () for chamado com um argumento de data, ele retornará o valor do argumento como segundos desde '1970-01-01 00:00:00' UTC. A data pode ser uma string DATE, uma string DATETIME, um TIMESTAMP ou um número no formato YYMMDD ou YYYYMMDD.

mysql> SELECT UNIX_TIMESTAMP();
+---------------------------------------------------------+
|                    UNIX_TIMESTAMP()                     |
+---------------------------------------------------------+
|                       882226357                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
+---------------------------------------------------------+
|         UNIX_TIMESTAMP('1997-10-04 22:23:00')           |
+---------------------------------------------------------+
|                      875996580                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UTC_DATE, UTC_DATE ()

Retorna a data UTC atual como um valor no formato 'AAAA-MM-DD' ou AAAAMMDD, dependendo se a função é usada em uma string ou contexto numérico.

mysql> SELECT UTC_DATE(), UTC_DATE() + 0;
+---------------------------------------------------------+
|                UTC_DATE(), UTC_DATE() + 0               |
+---------------------------------------------------------+
|                   2003-08-14, 20030814                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UTC_TIME, UTC_TIME ()

Retorna a hora UTC atual como um valor no formato 'HH: MM: SS' ou HHMMSS, dependendo se a função é usada em uma string ou contexto numérico.

mysql> SELECT UTC_TIME(), UTC_TIME() + 0;
+---------------------------------------------------------+
|               UTC_TIME(), UTC_TIME() + 0                |
+---------------------------------------------------------+
|                    18:07:53, 180753                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UTC_TIMESTAMP, UTC_TIMESTAMP ()

Retorna a data e hora UTC atuais como um valor no formato 'AAAA-MM-DD HH: MM: SS' ou AAAAMMDDHHMMSS, dependendo se a função é usada em um contexto de string ou numérico.

mysql> SELECT UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0;
+---------------------------------------------------------+
|          UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0           |
+---------------------------------------------------------+
|          2003-08-14 18:08:04, 20030814180804            |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SEMANA (data [, modo])

Esta função retorna o número da semana para a data. A forma de dois argumentos de WEEK () permite que você especifique se a semana começa no domingo ou segunda-feira e se o valor de retorno deve estar no intervalo de 0 a 53 ou de 1 a 53. Se o argumento de modo for omitido, o valor da variável de sistema default_week_format é usado

Modo Primeiro dia da semana Alcance A semana 1 é a primeira semana.
0 Domigo 0-53 com um domingo neste ano
1 Segunda-feira 0-53 com mais de 3 dias este ano
2 Domigo 1-53 com um domingo neste ano
3 Segunda-feira 1-53 com mais de 3 dias este ano
4 Domigo 0-53 com mais de 3 dias este ano
5 Segunda-feira 0-53 com uma segunda-feira neste ano
6 Domigo 1-53 com mais de 3 dias este ano
7 Segunda-feira 1-53 com uma segunda-feira neste ano
mysql> SELECT WEEK('1998-02-20');
+---------------------------------------------------------+
| WEEK('1998-02-20')                                      |
+---------------------------------------------------------+
| 7                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

WEEKDAY (data)

Retorna o índice do dia da semana para a data (0 = segunda-feira, 1 = terça-feira,. 6 = domingo).

mysql> SELECT WEEKDAY('1998-02-03 22:23:00');
+---------------------------------------------------------+
| WEEKDAY('1998-02-03 22:23:00')                          |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

WEEKOFYEAR (data)

Retorna a semana do calendário da data como um número no intervalo de 1 a 53. WEEKOFYEAR () é uma função de compatibilidade equivalente a WEEK (data, 3).

mysql> SELECT WEEKOFYEAR('1998-02-20');
+---------------------------------------------------------+
| WEEKOFYEAR('1998-02-20')                                |
+---------------------------------------------------------+
| 8                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ANO (data)

Retorna o ano para a data, no intervalo de 1000 a 9999, ou 0 para o .zero. encontro.

mysql> SELECT YEAR('98-02-03');
+---------------------------------------------------------+
| YEAR('98-02-03')                                        |
+---------------------------------------------------------+
| 1998                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

YEARWEEK (data), YEARWEEK (data, modo)

Retorna ano e semana para uma data. O argumento de modo funciona exatamente como o argumento de modo para WEEK (). O ano no resultado pode ser diferente do ano no argumento de data para a primeira e a última semana do ano.

mysql> SELECT YEARWEEK('1987-01-01');
+---------------------------------------------------------+
| YEAR('98-02-03')YEARWEEK('1987-01-01')                  |
+---------------------------------------------------------+
| 198653                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

Observe que o número da semana é diferente do que a função WEEK () retornaria (0) para os argumentos opcionais 0 ou 1, pois WEEK () retorna a semana no contexto do ano fornecido.

Para obter mais informações, consulte o site oficial do MySQL - Funções de data e hora