sql >> Database >  >> RDS >> Mysql

Hoe de datum in Unix milliseconde op te slaan in Mysql?

niet doen. DateTime waarden moeten worden opgeslagen als DateTime , tenzij je een heel goede reden hebt om ze anders op te slaan (zoals voor het ondersteunen van datum- en tijdwaarden buiten de min/max-waarden van DateTime ), zou ik willen voorstellen om het in een DateTime te laten staan kolom.

U kunt altijd manipuleren hoe u ze uit de database retourneert tijdens Select of in de presentatielaag. De unix-tijd retourneren van DateTime , MySql biedt een ingebouwde methode genaamd UNIX_TIMESTAMP . Om het aantal milliseconden te retourneren, vermenigvuldigt u eenvoudig met 1000, aangezien de Unix-tijdstempel het aantal seconden is sinds 1 januari 1970 (schrikkelseconden niet meegerekend). Als u Unix-tijd wilt opslaan, moet u een int-gegevenstype gebruiken.

Houd er rekening mee dat als u Unix-tijd opslaat in plaats van de werkelijke DateTime waarde in een DateTime datatype-kolom verliest, verliest u de mogelijkheid om alle ingebouwde databasefuncties van datetime gemakkelijk te gebruiken. Als je bijvoorbeeld wilt weten hoeveel rijen bij een bepaalde maand horen, moet je eerst de gegevens van int naar datetime vertalen en pas daarna kun je dat berekenen.

U verliest ook de nauwkeurigheid (aangezien Unix-tijd zelfs bij de resolutie van 1 seconde onnauwkeurig is, omdat schrikkelseconden worden genegeerd).

Dus, tot slot:als de database u een gegevenstype biedt dat bij de gegevens past, sla die gegevens dan niet op met een ander gegevenstype. gebruik de Date gegevenstype als u alleen datums wilt opslaan, de DateTime gegevenstype als u datetime-waarden wilt opslaan, en de Time gegevenstype als u een specifieke tijd van de dag wilt opslaan.

P.S.
Als je te maken hebt met datum-tijdwaarden, vooral als je te maken hebt met klanten van meerdere locaties, sla ALTIJD alleen UTC-datumtijden op in je database, tenzij je natuurlijk gek wilt worden.




  1. Hoe de eerste drie tekens bij te snijden op basis van de eerste letter (uitdrukking) voordat deze in de database wordt ingevoegd

  2. Groovy SQL Oracle Array Functie/Procedure Uit Parameters Registratie

  3. Database-ontwerp:één grote tabel of aparte tabellen?

  4. Correct opgemaakte MySQL date insert statement retourneert alle nullen