Jag skulle inte använda INT
eller TIMESTAMP
för att spara dina datetime-värden. Det finns "År-2038-problem"
! Du kan använda DATETIME
och spara dina datumtider under lång tid.
Med TIMESTAMP
eller numeriska kolumntyper kan du bara lagra ett intervall av år från 1970 till 2038. Med DATETIME
typ kan du spara datum med år från 1000 till 9999.
Det är inte rekommenderas att använda en numerisk kolumntyp (INT
) för att lagra information om datum och tid. MySQL (och andra system också) tillhandahåller många funktioner för att hantera information om datum och tid. Dessa funktioner är snabbare och mer optimerade än anpassade funktioner eller beräkningar:https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html
För att konvertera tidszonen för ditt lagrade värde till klientens tidszon kan du använda CONVERT_TZ
. I det här fallet måste du känna till serverns tidszon och tidszonen för din klient. För att få serverns tidszon kan du se några möjligheter på denna fråga
.