/ MySQL: Modifikation nur bis zu bestimmtem Datum zulassen.
sascha
- perl
Hallo.
Ich möchte Datensätze in einer DB anlegen, die bis zu einem bestimmten Datum + Uhrzeit editierbar bleiben sollen. (Dieses Datum + Uhrzeit ist in einem dafür vorgesehenen Feld des Datensatzes abgelegt) In welcher Form lege ich das da jetzt am besten ab, damit es sich anschließend aus einem Perl Script gut evaluieren lässt (also mit einer Standardfunktion).
Habe hierfür irgendwie nicht die richtigen google-Stichwörter gefunden. Tipps oder Links wären toll..
Gruß,
sascha
Hallo,
Ich möchte Datensätze in einer DB anlegen, die bis zu einem bestimmten Datum + Uhrzeit editierbar bleiben sollen. (Dieses Datum + Uhrzeit ist in einem dafür vorgesehenen Feld des Datensatzes abgelegt) In welcher Form lege ich das da jetzt am besten ab,
Für Datums- und Zeitangaben nimmst am allerbesten Du den dafür vorgesehenen Datentyp: DATETIME.
Das ist übrigens völlig unabhängig davon, mit welcher Programmiersprache Du auf diese Daten zugreifst.
Freundliche Grüße
Vinzenz
Hallo Vinzenz.
Für Datums- und Zeitangaben nimmst am allerbesten Du den dafür vorgesehenen Datentyp: DATETIME.
Und wie kann ich das Datum im "datetime Format" (YYYY-MM-DD HH-MM-SS) in Perl erzeugen? Es gibt ja einige Module für Datum und Zeit, allerdings habe ich noch keins gefunden, das mir das Datum genau so ausgibt.?
Gruß,
sascha
Hallo,
Für Datums- und Zeitangaben nimmst am allerbesten Du den dafür vorgesehenen Datentyp: DATETIME.
Und wie kann ich das Datum im "datetime Format" (YYYY-MM-DD HH-MM-SS) in Perl erzeugen?
vielleicht mit dem Modul DateTime :-)
Du könntest alternativ mit time einen UNIX-Timestamp erzeugen und bei der INSERT oder UPDATE-Operation diesen mit FROM_UNIXTIME() in den Datentyp DATETIME umwandeln ...
Freundliche Grüße
Vinzenz
Hi,
Du könntest alternativ mit time einen UNIX-Timestamp erzeugen und bei der INSERT oder UPDATE-Operation diesen mit FROM_UNIXTIME() in den Datentyp DATETIME umwandeln ...
Wenn man nur das aktuelle Datum haben will würde es auch mit CURRENT_TIMESTAMP direkt in mySql gehen.
Irgendwie kann man dann auch direkt 3 Tage dazuzählen oder abziehen, aber wie genau weiß ich gerade nicht.
mfG,
steckl
hi,
Und wie kann ich das Datum im "datetime Format" (YYYY-MM-DD HH-MM-SS) in Perl erzeugen? Es gibt ja einige Module für Datum und Zeit, allerdings habe ich noch keins gefunden, das mir das Datum genau so ausgibt.?
siehe unten. Dazu brauchst Du den UnixTimeStamp.
Hotti
use POSIX qw(strftime);
print strftime("%d.%m.%Y %X",localtime),"\n";
Anmerkung: Mit % wird ein Format eingeleitet. Beispiele:
%Y - das Jahr like 2002
%m - der Monat like 03
%d - der Tag like 01
%X - die genaue Zeit like 00:24:35
Hier die komplette Liste der Formate (man date auf debian):
FORMAT controls the output. The only valid option for the
second form specifies Coordinated Universal Time. Inter
preted sequences are:
%% a literal %
%a locale's abbreviated weekday name (Sun..Sat)
%A locale's full weekday name, variable length (Sun
day..Saturday)
%b locale's abbreviated month name (Jan..Dec)
%B locale's full month name, variable length (Jan
uary..December)
%c locale's date and time (Sat Nov 04 12:02:33 EST
1989)
%d day of month (01..31)
%D date (mm/dd/yy)
%e day of month, blank padded ( 1..31)
%h same as %b
%H hour (00..23)
%I hour (01..12)
%j day of year (001..366)
%k hour ( 0..23)
%l hour ( 1..12)
%m month (01..12)
%M minute (00..59)
%n a newline
%p locale's AM or PM
%r time, 12-hour (hh:mm:ss [AP]M)
%s seconds since `00:00:00 1970-01-01 UTC' (a GNU
extension)
%S second (00..60)
%t a horizontal tab
%T time, 24-hour (hh:mm:ss)
%U week number of year with Sunday as first day of
week (00..53)
%V week number of year with Monday as first day of
week (01..53)
%w day of week (0..6); 0 represents Sunday
%W week number of year with Monday as first day of
week (00..53)
%x locale's date representation (mm/dd/yy)
%X locale's time representation (%H:%M:%S)
%y last two digits of year (00..99)
%Y year (1970...)
%z RFC-822 style numeric timezone (-0500) (a nonstan
dard extension)
%Z time zone (e.g., EDT), or nothing if no time zone
is determinable
By default, date pads numeric fields with zeroes. GNU
date recognizes the following modifiers between `%' and a
numeric directive.