Ich habe bei einer Extension ein Problem.
Sowie ich Im BE einen Datensatz im Sysfolder anlegen möchte bekomme ich beim Datum ein Problem.
102: These fields are not properly updated in database: (entry_date) Probably value mismatch with fieldtype.
Das Feld in der Db ist als Date deklariert mit default "0000-00-00"
In der tca.php steht folgendes :
'entry_date' => array (
'exclude' => 0,
'label' => 'LLL:EXT:extensionname/locallang_db.xml:tx_tabelle.entry_date',
'config' => array (
'type' => 'input',
'size' => '12',
'max' => '20',
'eval' => 'date',
'checkbox' => '0',
'default' => '0000-00-00',
)
),
Kann mir jemand weiterhelfen?
Hallo,
üblich wird int(11) für Werte aus date/datetime gewählt.
VG,
LuP
OK. Und der Wert in der Tabelle ist dann ein Timestamp?
Kann man den in mysql später abfragen mit FROM_UNIXTIME(wert) ?
mad1200 schrieb
OK. Und der Wert in der Tabelle ist dann ein Timestamp?
ja
mad1200 schrieb
Kann man den in mysql später abfragen mit FROM_UNIXTIME(wert) ?
Konvertierung machst Du anhand cObject und stdWrap. Ausgabeformat per TS konfigurieren. Schau mal in der TSRef nach strftime.
VG,
LuP
das ist klar. ich möchte per Abfrage der Tabelle einen Vergleich durchführen.
Und das mit dem Vergleich wird so nichts, da ich timestamps mit neg. Vorzeichen habe.
Hi!
mad1200 schrieb
Und das mit dem Vergleich wird so nichts, da ich timestamps mit neg. Vorzeichen habe.
Ja, das ist natürlich ein problem, Timestamps gehen ja nur bis 1970 zurück...
Wenn Du im BE eine Eingebae der Form "YYYY-MM-DD" (also so, wie in MySQL) verwenden willst, dann solltest du unbedint eval => "date" aus Deiner TCA-Definition entfernen.
Leider unterstützt TYPO3 nativ keine MySQL-spezifischen Datentypen wie z.B. Date und Datetime.
CU
maxhb
Ich habe mein Problem inzwischen gelöst.
Lange Suche und viele Versuche, ich kann nun auch vor 1970 selektieren
Hi!
mad1200 schrieb
Ich habe mein Problem inzwischen gelöst.
Freut mich! Dann wäre es toll, wenn Du die Lösung hier kurz darstellen könntest.
CU
maxhb
Select blablabla from tabelle AND DATEDIFF(CURDATE(), DATE_FORMAT( DATE_ADD( FROM_UNIXTIME( 0 ) , INTERVAL birthday
SECOND ) , "%Y-%m-%d" )) /365 BETWEEN 41 AND 60 ';