No MySQL, o
TIMESTAMP() A função retorna um valor de data e hora com base no(s) argumento(s) passado(s). Você pode fornecer um ou dois argumentos. Se você fornecer dois, ele adicionará o segundo ao primeiro e retornará o resultado. Sintaxe
Você pode usar um destes dois formulários:
TIMESTAMP(expr) TIMESTAMP(expr1,expr2)
O primeiro argumento (
expr e expr1 ) é uma expressão de data ou data/hora. O segundo argumento (expr2 ) é uma expressão de tempo. Se você fornecer dois argumentos, expr2 é adicionado a expr1 e o resultado é um valor de data e hora. Exemplo 1 - Forneça um argumento de 'data'
Neste exemplo, forneço uma expressão de data.
SELECT TIMESTAMP('1999-12-31');
Resultado:
+-------------------------+
| TIMESTAMP('1999-12-31') |
+-------------------------+
| 1999-12-31 00:00:00 |
+-------------------------+
Portanto, o resultado é um valor de data e hora, independentemente de nosso argumento ser uma expressão de data ou data e hora.
Exemplo 2 – Forneça um argumento 'datetime'
E aqui está um exemplo usando uma expressão de data e hora.
SELECT TIMESTAMP('1999-12-31 23:59:59');
Resultado:
+----------------------------------+
| TIMESTAMP('1999-12-31 23:59:59') |
+----------------------------------+
| 1999-12-31 23:59:59 |
+----------------------------------+
Exemplo 3 – Incluir segundos fracionários
Você também pode incluir uma parte de segundos fracionários até microssegundos (6 dígitos). Quando você fizer isso, o resultado também incluirá essa parte.
SELECT TIMESTAMP('1999-12-31 23:59:59.999999');
Resultado:
+-----------------------------------------+
| TIMESTAMP('1999-12-31 23:59:59.999999') |
+-----------------------------------------+
| 1999-12-31 23:59:59.999999 |
+-----------------------------------------+
Exemplo 4 – Fornecendo 2 argumentos
Aqui está um exemplo usando dois argumentos. Como mencionado, o segundo é adicionado ao primeiro.
SELECT TIMESTAMP('1999-12-31', '12:30:45');
Resultado:
+-------------------------------------+
| TIMESTAMP('1999-12-31', '12:30:45') |
+-------------------------------------+
| 1999-12-31 12:30:45 |
+-------------------------------------+
Exemplo 5 - Valores de 'tempo' maiores
O tipo de dados de hora pode ter um intervalo de -838:59:59 para 838:59:59 . Isso ocorre porque não se limita apenas a representar a hora do dia. Também pode ser usado para representar o tempo decorrido. Nesse caso, usamos para adicionar um grande número de horas a um valor de data.
SELECT TIMESTAMP('1999-12-31', '400:30:45');
Resultado:
+--------------------------------------+
| TIMESTAMP('1999-12-31', '400:30:45') |
+--------------------------------------+
| 2000-01-16 16:30:45 |
+--------------------------------------+
Exemplo 6 – Valores negativos
Você pode subtrair o segundo argumento do primeiro, simplesmente prefixando o segundo valor com um sinal de menos.
SELECT TIMESTAMP('1999-12-31', '-400:30:45');
Resultado:
+---------------------------------------+
| TIMESTAMP('1999-12-31', '-400:30:45') |
+---------------------------------------+
| 1999-12-14 07:29:15 |
+---------------------------------------+
Exemplo 7 – Usando a data atual
Se você quiser um carimbo de data/hora que use a data atual, talvez esteja mais interessado em funções como
NOW() , CURDATE() , e possivelmente até SYSDATE() (para a diferença, veja SYSDATE() vs NOW() ). No entanto, o
TIMESTAMP() function ainda pode ser sua função preferida em certos casos, por exemplo, se você quiser adicionar um valor de hora à data atual. SELECT
TIMESTAMP(CURDATE()) AS 'Today',
TIMESTAMP(CURDATE(), '24:00:00') AS 'Tomorrow';
Resultado:
+---------------------+---------------------+ | Today | Tomorrow | +---------------------+---------------------+ | 2018-07-03 00:00:00 | 2018-07-04 00:00:00 | +---------------------+---------------------+
A função TIMESTAMPADD()
Você pode usar o
TIMESTAMPADD() função para adicionar uma unidade especificada a um valor de data ou data e hora. Esta função também aceita unidades como dias, meses, anos, etc. Se você encontrar
TIMESTAMP() muito restritivo para suas necessidades, veja TIMESTAMPADD() Exemplos.