В MySQL, TIMESTAMP() функцията връща стойност за дата и час въз основа на предадените аргументи. Можете да предоставите един или два аргумента. Ако предоставите две, той добавя втория към първия и връща резултата.
Синтаксис
Можете да използвате една от тези две форми:
TIMESTAMP(expr) TIMESTAMP(expr1,expr2)
Първият аргумент (expr и expr1 ) е израз за дата или време. Вторият аргумент (expr2 ) е времеви израз. Ако предоставите два аргумента, expr2 се добавя към expr1 и резултатът е стойност за дата и час.
Пример 1 – Предоставете аргумент „дата“
В този пример предоставям израз за дата.
SELECT TIMESTAMP('1999-12-31');
Резултат:
+-------------------------+
| TIMESTAMP('1999-12-31') |
+-------------------------+
| 1999-12-31 00:00:00 |
+-------------------------+
Така че резултатът е стойност за дата и час, независимо дали нашият аргумент е израз за дата или време.
Пример 2 – Предоставете аргумент „datetime“
И ето пример за използване на израз за дата и час.
SELECT TIMESTAMP('1999-12-31 23:59:59');
Резултат:
+----------------------------------+
| TIMESTAMP('1999-12-31 23:59:59') |
+----------------------------------+
| 1999-12-31 23:59:59 |
+----------------------------------+
Пример 3 – Включете дробни секунди
Можете също да включите част от секунди до микросекунди (6 цифри). Когато направите това, резултатът ще включва и тази част.
SELECT TIMESTAMP('1999-12-31 23:59:59.999999');
Резултат:
+-----------------------------------------+
| TIMESTAMP('1999-12-31 23:59:59.999999') |
+-----------------------------------------+
| 1999-12-31 23:59:59.999999 |
+-----------------------------------------+
Пример 4 – Предоставяне на 2 аргумента
Ето пример, използващ два аргумента. Както споменахме, вторият се добавя към първия.
SELECT TIMESTAMP('1999-12-31', '12:30:45');
Резултат:
+-------------------------------------+
| TIMESTAMP('1999-12-31', '12:30:45') |
+-------------------------------------+
| 1999-12-31 12:30:45 |
+-------------------------------------+
Пример 5 – По-големи стойности на „времето“
Типът данни за времето може да има диапазон от -838:59:59 до 838:59:59 . Това е така, защото не се ограничава само до представяне на времето от деня. Може да се използва и за представяне на изминало време. В този случай го използваме, за да добавим голям брой часове към стойност за дата.
SELECT TIMESTAMP('1999-12-31', '400:30:45');
Резултат:
+--------------------------------------+
| TIMESTAMP('1999-12-31', '400:30:45') |
+--------------------------------------+
| 2000-01-16 16:30:45 |
+--------------------------------------+
Пример 6 – Отрицателни стойности
Можете да извадите втория аргумент от първия, просто като поставите пред втората стойност знак минус.
SELECT TIMESTAMP('1999-12-31', '-400:30:45');
Резултат:
+---------------------------------------+
| TIMESTAMP('1999-12-31', '-400:30:45') |
+---------------------------------------+
| 1999-12-14 07:29:15 |
+---------------------------------------+
Пример 7 – Използване на текущата дата
Ако искате времева марка, която използва текущата дата, може да се интересувате повече от функции като NOW() , CURDATE() и вероятно дори SYSDATE() (за разликата вижте SYSDATE() срещу NOW() ).
Въпреки това, TIMESTAMP() функцията все още може да бъде предпочитаната от вас функция в определени случаи, например ако искате да добавите стойност за час към текущата дата.
SELECT
TIMESTAMP(CURDATE()) AS 'Today',
TIMESTAMP(CURDATE(), '24:00:00') AS 'Tomorrow';
Резултат:
+---------------------+---------------------+ | Today | Tomorrow | +---------------------+---------------------+ | 2018-07-03 00:00:00 | 2018-07-04 00:00:00 | +---------------------+---------------------+
Функция TIMESTAMPADD()
Можете да използвате TIMESTAMPADD() функция за добавяне на определена единица към стойност на дата или час. Тази функция приема и единици като дни, месеци, години и т.н.
Ако намерите TIMESTAMP() твърде ограничаващ за вашите нужди, вижте TIMESTAMPADD() Примери.