/ 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.