sql >> Database teknologi >  >> RDS >> Mysql

Hvordan gemmer man dato i unix millisekund i Mysql?

Lad være. DateTime værdier skal gemmes som DateTime , medmindre du har en rigtig god grund til at gemme dem på anden måde (f.eks. for at understøtte dato- og klokkeslætsværdier uden for min/maks-værdierne for DateTime ), vil jeg foreslå, at du bør lade det være i en DateTime kolonne.

Du kan altid manipulere, hvordan du returnerer dem fra databasen under Select eller i præsentationslaget. For at returnere unix-tiden fra DateTime , MySql giver en indbygget metode kaldet UNIX_TIMESTAMP . For at returnere antallet af millisekunder skal du blot gange med 1000, da unix-tidsstemplet er antallet af sekunder siden 1. januar 1970 (ikke inklusive springsekunder). Hvis du vil gemme unix-tid, skal du bruge en int-datatype.

Bemærk venligst, at hvis du gemmer unix-tid i stedet for at gemme den faktiske DateTime værdi i en DateTime datatype kolonne, mister du muligheden for nemt at bruge alle datetime indbyggede databasefunktioner. For eksempel, hvis du vil finde ud af, hvor mange rækker der hører til en bestemt måned, skal du først oversætte dataene fra int til datetime, og først derefter vil du være i stand til at beregne det.

Du vil også miste nøjagtigheden (da unix-tiden er unøjagtig selv på 1 sekunds opløsning, fordi den ignorerer springsekunder).

Så for at konkludere - Når databasen tilbyder dig en datatype, der passer til dataene, så lad være med at gemme disse data ved hjælp af en anden datatype. brug Date datatype, hvis du kun ønsker at gemme datoer, er DateTime datatype, hvis du vil gemme datetime-værdier og Time datatype, hvis du vil gemme et bestemt tidspunkt på dagen.

P.S.
Når du beskæftiger dig med værdier for dato og klokkeslæt, især hvis du har at gøre med kunder fra flere lokationer, skal du ALTID kun gemme UTC-dato-tider i din database, medmindre du selvfølgelig vil blive gal.




  1. MySQL samtidige opdateringer

  2. Indstil en gentagelsesværdi til 0, mens du lader den første værdi stå

  3. Mysql-opdateringsforespørgsel med forberedt erklæring giver fejl

  4. MySQL DELETE FROM med UNION-underforespørgsel efter IN-tilstand