SQL-Befehl für aktuellen "timestamp"

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
fontane
Mitglied
Beiträge: 267
Registriert: 03.02.2013 12:58

SQL-Befehl für aktuellen "timestamp"

Beitragvon fontane » 12.05.2018 12:03

Hallo,

ich bin am verzweifeln, den eigentlich kann es doch nicht so schwer sein.

Könnte mir jemand man behilflich sein und mir den SQL-Befehl benennen um ein selbst angelegtes Datenfeld in einer Tabelle mit dem aktuellen Datum (timestamp) zu versehen? (Die Befehlseingabe erfolgt direkt im MySQL-Dumper).

Folgendes habe ich bereits versucht:

Erfolgreich wenn ich "unixtime" bei http://www.unixtime.de definiere und direkt im SQL-Befehl eingebe:

Code: Alles auswählen

UPDATE phpbb_users SET table_name = '1462985852' WHERE user_id = '1';


Erfolglos waren nachstehende Befehle, wenn ich die "unixtime" automatisiert (=aktuell) eingeben will:

Code: Alles auswählen

UPDATE phpbb_users SET table_name = 'timestamp' WHERE user_id = '1';
UPDATE phpbb_users SET table_name = 'TIME_NOW' WHERE user_id = '1';
UPDATE phpbb_users SET table_name = 'TIME_NOW()' WHERE user_id = '1';
UPDATE phpbb_users SET table_name = 'TIME(NOW)' WHERE user_id = '1';
UPDATE phpbb_users SET table_name = TIME_NOW() WHERE user_id = '1';
UPDATE phpbb_users SET table_name = DATE_NOW() WHERE user_id = '1';
UPDATE phpbb_users SET table_name = TIMESTAMP('now') WHERE user_id = '1';
UPDATE phpbb_users SET table_name = TIMESTAMP'NOW' WHERE user_id = '1';
UPDATE phpbb_users SET table_name = systimestamp WHERE user_id = '1';
UPDATE phpbb_users SET table_name = 'CURRENT_TIMESTAMP' WHERE user_id = '1';
UPDATE phpbb_users SET table_name = 'current timestamp' WHERE user_id = '1';
UPDATE phpbb_users SET table_name = 'sysdate' WHERE user_id = '1';
UPDATE phpbb_users SET table_name = table_name 'TIME_NOW' WHERE user_id = '1';
UPDATE phpbb_users SET table_name => TIME_NOW WHERE user_id = '1'
;

Nachstehender Befehl generiert zwar ein Datum, aber im Jahr 2106 (der Zeit somit weit voraus)

Code: Alles auswählen

UPDATE phpbb_users SET table_name = NOW() WHERE user_id = '1';

Eigentlch müsste doch "TIME_NOW" oder "TIME_NOW()" funktionieren, tut es aber nicht.

Vielleicht könnte mir einer der Programmierprofis behilflich sein und mir den korrekten SQL-Befehl benennen.

Einer zusätzlichen Lösung es über einen Button im myBB-Forum tätigen zu können wäre ich nicht abgeneigt.

Vielen Danke vorab.

Benutzeravatar
canonknipser
Supporter
Supporter
Beiträge: 1462
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: SQL-Befehl für aktuellen "timestamp"

Beitragvon canonknipser » 12.05.2018 12:35

Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;) - Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC

fontane
Mitglied
Beiträge: 267
Registriert: 03.02.2013 12:58

Re: SQL-Befehl für aktuellen "timestamp"

Beitragvon fontane » 12.05.2018 13:56

Hallo canonknipser,

bei Deinem Hinweis (Link) ist leider alles in Englisch dokumentiert und kein Stichwort: "Update" zu finden :( ). Bin daher leider genauso schlau wie vorher. Mit "CURRENT_TIMESTAMP" versuchte ich es bereits, da wird mir ein bereits vorhandenes Datum (timestamp) auf "0" gesetzt.

Nun denn. Irgendwann wird sich vielleicht die Lösung finden.

Trotzdem Danke für Dein Engagement.

Edit: konnte es jetzt erfolgreich mit:

Code: Alles auswählen

UPDATE phpbb_users SET table_name = UNIX_TIMESTAMP() WHERE uid = 1;
lösen.
Zuletzt geändert von fontane am 12.05.2018 14:05, insgesamt 1-mal geändert.

Benutzeravatar
canonknipser
Supporter
Supporter
Beiträge: 1462
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: SQL-Befehl für aktuellen "timestamp"

Beitragvon canonknipser » 12.05.2018 14:03

Ist deine Spalte denn als datetime definiert? Oder hat die ein anderes Format?
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;) - Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC

Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 15385
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: SQL-Befehl für aktuellen "timestamp"

Beitragvon Dr.Death » 12.05.2018 21:28

Code: Alles auswählen

$current_time = time();
UPDATE phpbb_users SET table_name = $current_time WHERE uid = 1



http://php.net/manual/de/function.time.php

fontane
Mitglied
Beiträge: 267
Registriert: 03.02.2013 12:58

Re: SQL-Befehl für aktuellen "timestamp"

Beitragvon fontane » 13.05.2018 10:50

@ Dr.Death
Die von Dir definierte SQL-Anweisung bringt für die erste Anweisung folgende Fehlermeldung:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$current_time = time()' at line 1
Die zweite SQL-Anweisung bringt folgende Fehlermeldung:
Unknown column '$current_time' in 'field list'

Wie bereits geschrieben, funktioniert es mit:

Code: Alles auswählen

UPDATE phpbb_users SET table_name = UNIX_TIMESTAMP() WHERE user_id = 1;
wie von mir gewünscht.

@ canonknipser, @ Dr.Death
Danke für Eure Bemühungen und das eingebrachte Engagement mir zu helfen.

Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 15385
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: SQL-Befehl für aktuellen "timestamp"

Beitragvon Dr.Death » 13.05.2018 11:41

Oh, ich dachte du könntest zwischen php und SQL Code unterscheiden....mein Fehler....

Mein Code war eher dazu gedacht die aktuelle Zeit als timestamp in eine Variable zu packen und dann in einem weiteren PHP Abschnitt dem eigentlichen SQL Statement zuzuweisen.

Ich dachte nicht, das du alles direkt in deinem phpMyAdmin oder anderen direkten SQL Fenster eingeben willst.

Benutzeravatar
canonknipser
Supporter
Supporter
Beiträge: 1462
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: SQL-Befehl für aktuellen "timestamp"

Beitragvon canonknipser » 13.05.2018 12:46

OK, du hast also keine datetime-Spalte, sondern ein Integer, in dem du den Wert eines Unix-Zeitstempels speichern willst und keinen echten Zeitstempel von mysql
Deswegen meine Frage
canonknipser hat geschrieben:Ist deine Spalte denn als datetime definiert? Oder hat die ein anderes Format?


Vielleicht noch ein kleiner Hinweis aus Datenmodellierungssicht: Man sollte Tabellenobjekte immer so benennen, dass man den Inhalt und ggf. auch das Datenformat aus dem Namen ableiten kann.
Aus deinem Spaltennamen table_name hätte ich niemals auf einen Zeitwert als Inhalt geschlossen. Das ist für mich eine String-Spalte, also CHAR oder VARCHAR, die den Namen einer Tabelle enthält ;)
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;) - Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC

fontane
Mitglied
Beiträge: 267
Registriert: 03.02.2013 12:58

Re: SQL-Befehl für aktuellen "timestamp"

Beitragvon fontane » 13.05.2018 13:20

Hallo canonknipser,

Danke für die Erläuterung. SQL und PHP sind bei mir lediglich "notgedrungene Dörfer" um ehrenamtliche Foren zu betreuen.

Man muss immer dazu lernen. Der Hauptberuf nimmt aber schon viel Zeit in Anspruch.

Nochmals besten Dank für die Erläuterungen.


Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“