sql >> Databasteknik >  >> RDS >> Mysql

Hur lagrar man datum i unix millisekund i Mysql?

Gör det inte. DateTime värden ska lagras som DateTime , om du inte har en riktigt bra anledning att lagra dem på annat sätt (som för att stödja datum- och tidsvärden utanför min/max-värdena för DateTime ), skulle jag föreslå att du bör lämna den i en DateTime kolumn.

Du kan alltid manipulera hur du returnerar dem från databasen under Select eller i presentationslagret. För att returnera unix-tiden från DateTime , MySql tillhandahåller en inbyggd metod som heter UNIX_TIMESTAMP . För att returnera antalet millisekunder, multiplicera helt enkelt med 1000, eftersom unix-tidsstämpeln är antalet sekunder sedan 1 januari 1970 (exklusive skottsekunder). Om du vill lagra unix-tid måste du använda en int-datatyp.

Observera att om du lagrar unix-tid istället för att lagra den faktiska DateTime värde i en DateTime datatyp kolumn, kommer du att förlora möjligheten att enkelt använda alla datetime inbyggda databasfunktioner. Om du till exempel vill ta reda på hur många rader som tillhör en specifik månad måste du först översätta data från int till datetime, och först då kommer du att kunna beräkna det.

Du kommer också att förlora noggrannhet (eftersom unix-tiden är felaktig även på 1 sekunds upplösning, eftersom den ignorerar skottsekunder).

Så, för att sammanfatta - När databasen erbjuder dig en datatyp som passar data, gå inte och lagra dessa data med en annan datatyp. använd Date datatyp om du bara vill lagra datum, DateTime datatyp om du vill lagra datetime-värden och Time datatyp om du vill lagra en specifik tid på dagen.

P.S.
När du har att göra med datum- och tidsvärden, speciellt om du har att göra med kunder från flera platser, lagra ALLTID endast UTC-datumtider i din databas, såvida du inte vill bli galen förstås.




  1. Tabellvärderad funktion med flera påståenden vs inline-värderad tabellfunktion

  2. SQL Server Error 109:Det finns fler kolumner i INSERT-satsen än de värden som anges i VALUES-satsen

  3. Byta namn på kolumner i en MySQL select-sats med R-paketet RJDBC

  4. MySql Workbench installationsprogrammet kräver Visual C++ 2015 Redistributable Package för att vara installerat, men det är redan installerat