sql >> Database >  >> Database Tools >> phpMyAdmin

ISO 8601 Tijdstempel voor MySQL-database:MySQL Onjuiste datetime-waarde

Zoals vermeld in Datum- en tijdliteratuur :

MySQL herkent DATETIME en TIMESTAMP waarden in deze formaten:

  • Als een string in een van beide 'YYYY-MM-DD UU:MM:SS' of 'JJ-MM-DD UU:MM:SS' formaat. Een "relaxte" syntaxis is hier ook toegestaan:elk leesteken kan worden gebruikt als scheidingsteken tussen datumdelen of tijddelen. Bijvoorbeeld '2012-12-31 11:30:45' , '2012^12^31 11+30+45' , '2012/12/31 11*30*45' , en '[email protected] @31 11^30^45' zijn gelijkwaardig.

  • Als een tekenreeks zonder scheidingstekens in 'YYYYMMDDHHMMSS' of 'JJMMDDHHMMSS' formaat, op voorwaarde dat de string zinvol is als een datum. Bijvoorbeeld '20070523091528' en '070523091528' worden geïnterpreteerd als '2007-05-23 09:15:28' , maar '071122129015' is illegaal (het heeft een onzinnig minuutgedeelte) en wordt '0000-00-00 00:00:00' .

  • Als een getal in YYYYMMDDHHMMSS of JJMMDDHHMMSS formaat, op voorwaarde dat het nummer zinvol is als een datum. Bijvoorbeeld 19830905132800 en 830905132800 worden geïnterpreteerd als '1983-09-05 13:28:00' .

Een DATETIME of TIMESTAMP waarde kan een volggedeelte van een fractie van een seconde bevatten met een nauwkeurigheid tot microseconden (6 cijfers). Hoewel dit fractionele deel wordt herkend, wordt het verwijderd uit de waarden die zijn opgeslagen in DATETIME of TIMESTAMP kolommen. Voor informatie over ondersteuning van fractionele seconden in MySQL, zie Sectie 11.3.6, "Fractional Seconden in tijdwaarden” .

Uw datum letterlijk van '2012-08-24T17:29:11.683Z' past niet in een van deze formaten; stel je ook voor—

  • gebruik in plaats daarvan de toLocaleFormat() methode (zorg ervoor dat de tijdzone van de MySQL-verbinding overeenkomt met die van de landinstelling van Node.js):

      if s instanceof Date
             return s.toLocaleFormat("%Y-%m-%d %H:%M:%S")
    
  • gebruik de valueOf() methode om de waarde van de tijd in milliseconden te verkrijgen sinds het UNIX-tijdperk, deel door 1000 (om seconden te krijgen sinds het UNIX-tijdperk) en passeren MySQL's FROM_UNIXTIME() functie.



  1. hoe kan ik een hele kolom versleutelen?

  2. MariaDB staat geen externe verbindingen toe

  3. phpMyAdmin MySQL TimeStamp toont achterliggende nullen

  4. PhpMyAdmin- en Mysql-databases