sascha: / MySQL: Modifikation nur bis zu bestimmtem Datum zulassen.

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

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

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

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

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

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