Grundlegender Unterschied zwischen Datum, Datum (ISO-Format), Datum (Unix-Zeitstempel) zum Erstellen eines Felds


8

Ich habe ein Feld als Feldtyp Datum (Unix-Zeitstempel) erstellt.

Wenn ich einen Inhalt mit einem Eingabewert im oben erstellten Feld bearbeite, wird ein Fehler wie der folgende angezeigt: -

PDOException: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'field_reprisal_date_value' at row 1: INSERT INTO {field_data_field_reprisal_date} (entity_type, entity_id, revision_id, bundle, delta, language, field_reprisal_date_value) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6); Array ( [:db_insert_placeholder_0] => node [:db_insert_placeholder_1] => 258985 [:db_insert_placeholder_2] => 245170 [:db_insert_placeholder_3] => embedded_video [:db_insert_placeholder_4] => 0 [:db_insert_placeholder_5] => und [:db_insert_placeholder_6] => 2015-03-02 ) in field_sql_storage_field_storage_write() (line 494 of /www/d7yourtango/modules/field/modules/field_sql_storage/field_sql_storage.module).

Aber nachdem ich das obige Feld wieder gelöscht habe, erstelle ich ein anderes Feld als Feldtyp Datum und verarbeite dasselbe, es funktioniert.

Meine Frage ist also, warum es so für den ersten Fall passiert?

Und was sind die grundlegenden Unterschiede zwischen den Feldtypen Datum, Datum (ISO-Format) und Datum (Unix-Zeitstempel), um ein Feld zu erstellen?

Antworten:


8

Im Folgenden werden drei Feldtypen ausführlich erläutert

Datum

  • Wird als 'datetime'-Feldtyp in der Techno-Datenbank speak bezeichnet. Dieser Formattyp wird für die meisten Installationen empfohlen, da er die Datumsverarbeitungsfunktionen der Datenbank ohne Konvertierung nutzt, was schnellere Abfragen bedeutet.
  • Speichert das Datum im nativen Datumsformat der Datenbank (JJJJ-MM-TT HH: MM: SS).
  • Die Daten sind in einer für Menschen lesbaren Form.
  • Sie können es für unvollständige Daten verwenden, dh nur für ein Jahr oder nur für ein Jahr und einen Monat, und die anderen Werte mit Nullen auffüllen, sodass es nicht genauer zu sein scheint, als es wirklich ist.

Datum (ISO-Format)

  • Speichert das Datum in einem ISO-Format (JJJJ-MM-TTTHH: MM: SS).

  • Die Daten sind in einer für Menschen lesbaren Form.

  • Liste Sie können es für unvollständige Daten verwenden, dh nur für ein Jahr oder nur für ein Jahr und einen Monat, und die anderen Werte mit Nullen auffüllen, sodass es nicht genauer zu sein scheint, als es wirklich ist.

  • Es ist ein international anerkanntes Format, das auf vielen Websites und in vielen Anwendungen unverändert verwendet wird.

Datum (Unix-Zeitstempel)

  • Speichert das Datum als Ganzzahl.

  • Nimmt weniger Platz in der Datenbank ein, weil sie kleiner ist.

  • Oft einfacher für Datumsberechnungen zu verwenden, da Sie sie nur durch Addieren oder Subtrahieren von Sekunden erhöhen oder verringern können.

  • Es ist das Format, das von PHP-Datumsfunktionen verwendet wird.

  • Es muss mit einem vollständigen Datum gefüllt sein - Jahr, Monat, Tag, Stunde, Minute, Sekunde, daher müssen Sie manchmal einige dieser Werte willkürlich festlegen, auch wenn sie nicht zutreffen.

Genommen Referenz von hier


Eine wichtige Einschränkung des "Datums (Unix-Zeitstempel)" ist der Bereich. Frühestens um 1902, spätestens um 2038. Aus einem Kommentar auf Ihrer Referenzseite: "Daten, die unter dem Jahr 1902 oder über dem Jahr 2037 liegen, können normalerweise nicht mit dem definierten ganzzahligen Stempel gespeichert werden"
François
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.