I MySQL, TIMESTAMP()
funktion returnerar ett datetime-värde baserat på argumentet/argumenten som skickas in. Du kan ange ett argument eller två. Om du anger två läggs den andra till den första och resultatet returneras.
Syntax
Du kan använda någon av dessa två former:
TIMESTAMP(expr) TIMESTAMP(expr1,expr2)
Det första argumentet (expr
och expr1
) är ett uttryck för datum eller datum och tid. Det andra argumentet (expr2
) är ett tidsuttryck. Om du anger två argument, expr2
läggs till i expr1
och resultatet är ett datetime-värde.
Exempel 1 – Ange ett "datum"-argument
I det här exemplet tillhandahåller jag ett datumuttryck.
SELECT TIMESTAMP('1999-12-31');
Resultat:
+-------------------------+ | TIMESTAMP('1999-12-31') | +-------------------------+ | 1999-12-31 00:00:00 | +-------------------------+
Så resultatet är ett datetime-värde oavsett om vårt argument var ett datum- eller datetime-uttryck.
Exempel 2 – Ange ett "datetime"-argument
Och här är ett exempel med ett uttryck för datum och tid.
SELECT TIMESTAMP('1999-12-31 23:59:59');
Resultat:
+----------------------------------+ | TIMESTAMP('1999-12-31 23:59:59') | +----------------------------------+ | 1999-12-31 23:59:59 | +----------------------------------+
Exempel 3 – Inkludera bråkdelar av sekunder
Du kan också inkludera en del av bråkdelssekunder upp till mikrosekunder (6 siffror). När du gör detta kommer resultatet även att inkludera den delen.
SELECT TIMESTAMP('1999-12-31 23:59:59.999999');
Resultat:
+-----------------------------------------+ | TIMESTAMP('1999-12-31 23:59:59.999999') | +-----------------------------------------+ | 1999-12-31 23:59:59.999999 | +-----------------------------------------+
Exempel 4 – Att tillhandahålla 2 argument
Här är ett exempel med två argument. Som nämnts läggs den andra till den första.
SELECT TIMESTAMP('1999-12-31', '12:30:45');
Resultat:
+-------------------------------------+ | TIMESTAMP('1999-12-31', '12:30:45') | +-------------------------------------+ | 1999-12-31 12:30:45 | +-------------------------------------+
Exempel 5 – Större "tid"-värden
Tidsdatatypen kan ha ett intervall från -838:59:59 till 838:59:59 . Detta beror på att det inte bara är begränsat till att representera tiden på dagen. Det kan också användas för att representera förfluten tid. I det här fallet använder vi det för att lägga till ett stort antal timmar till ett datumvärde.
SELECT TIMESTAMP('1999-12-31', '400:30:45');
Resultat:
+--------------------------------------+ | TIMESTAMP('1999-12-31', '400:30:45') | +--------------------------------------+ | 2000-01-16 16:30:45 | +--------------------------------------+
Exempel 6 – Negativa värden
Du kan subtrahera det andra argumentet från det första genom att helt enkelt sätta ett minustecken före det andra värdet.
SELECT TIMESTAMP('1999-12-31', '-400:30:45');
Resultat:
+---------------------------------------+ | TIMESTAMP('1999-12-31', '-400:30:45') | +---------------------------------------+ | 1999-12-14 07:29:15 | +---------------------------------------+
Exempel 7 – Använda det aktuella datumet
Om du vill ha en tidsstämpel som använder det aktuella datumet kanske du är mer intresserad av funktioner som NOW()
, CURDATE()
, och möjligen till och med SYSDATE()
(för skillnaden, se SYSDATE()
kontra NOW()
).
Men TIMESTAMP()
funktion kan fortfarande vara din föredragna funktion i vissa fall, till exempel om du vill lägga till ett tidsvärde till det aktuella datumet.
SELECT TIMESTAMP(CURDATE()) AS 'Today', TIMESTAMP(CURDATE(), '24:00:00') AS 'Tomorrow';
Resultat:
+---------------------+---------------------+ | Today | Tomorrow | +---------------------+---------------------+ | 2018-07-03 00:00:00 | 2018-07-04 00:00:00 | +---------------------+---------------------+
Funktionen TIMESTAMPADD()
Du kan använda TIMESTAMPADD()
funktion för att lägga till en specificerad enhet till ett datum- eller datetime-värde. Denna funktion accepterar även enheter som dagar, månader, år etc.
Om du hittar TIMESTAMP()
för restriktiv för dina behov, se TIMESTAMPADD()
Exempel.