Das Binärprotokoll ermöglicht das Senden und Empfangen von
        Datums- und Uhrzeitwerten (DATE,
        TIME, DATETIME und
        TIMESTAMP) mithilfe der
        MYSQL_TIME-Struktur. Die Bestandteile dieser
        Struktur werden in
        Abschnitt 24.2.5, „C-API: Prepared Statement-Datentypen“,
        beschrieben.
      
        Um temporale Datenwerte zu senden, legen Sie eine vorbereitete
        Anweisung mit mysql_stmt_prepare() an und
        richten die Temporalparameter, bevor Sie die Anweisung mit
        mysql_stmt_execute() ausführen,
        folgendermaßen ein:
      
            In der MYSQL_BIND-Struktur, die mit dem
            Datenwert verbunden ist, stellen Sie den
            buffer_type-Teil auf den Typ, der die Art
            des zu sendenden Temporalwerts angibt. Für
            DATE-, TIME-,
            DATETIME- oder
            TIMESTAMP-Werte setzen Sie
            buffer_type auf
            MYSQL_TYPE_DATE,
            MYSQL_TYPE_TIME,
            MYSQL_TYPE_DATETIME oder
            MYSQL_TYPE_TIMESTAMP.
          
            Stellen Sie den buffer-Teil der
            MYSQL_BIND-Struktur auf die Adresse der
            MYSQL_TIME-Struktur ein, in die Sie den
            Temporalwert übergeben.
          
            Füllen Sie die Bestandteile der
            MYSQL_TIME-Struktur aus, die sich für
            den Typ des zu übergebenden Temporalwerts eignen.
          
        Binden Sie mit mysql_stmt_bind_param() die
        Parameterdaten an die Anweisung. Dann können Sie
        mysql_stmt_execute() aufrufen.
      
        Abgerufen werden die Temporalwerte ganz ähnlich, nur dass Sie
        beim Abruf den buffer_type-Teil auf den Typ
        des Werts einstellen, den Sie empfangen wollen, und den
        buffer-Teil auf die Adresse einer
        MYSQL_TIME-Struktur, in die der Rückgabewert
        eingesetzt werden soll. Mit
        mysql_bind_results() binden Sie die Puffer an
        die Anweisung, nachdem Sie
        mysql_stmt_execute() aufgerufen haben und
        bevor Sie die Ergebnisse abholen.
      
        Das folgende einfache Beispiel fügt DATE-,
        TIME- und TIMESTAMP-Daten
        ein. Die mysql-Variable sei ein gültiger
        Verbindungs-Handle.
      
  MYSQL_TIME  ts;
  MYSQL_BIND  bind[3];
  MYSQL_STMT  *stmt;
  strmov(query, "INSERT INTO test_table(date_field, time_field,
                                        timestamp_field) VALUES(?,?,?");
  stmt = mysql_stmt_init(mysql);
  if (!stmt)
  {
    fprintf(stderr, " mysql_stmt_init(), out of memory\n");
    exit(0);
  }
  if (mysql_stmt_prepare(mysql, query, strlen(query)))
  {
    fprintf(stderr, "\n mysql_stmt_prepare(), INSERT failed");
    fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
    exit(0);
  }
  /* Richte Eingabepuffer für alle 3 Parameter ein */
  bind[0].buffer_type= MYSQL_TYPE_DATE;
  bind[0].buffer= (char *)&ts;
  bind[0].is_null= 0;
  bind[0].length= 0;
  ...
  bind[1]= bind[2]= bind[0];
  ...
  mysql_stmt_bind_param(stmt, bind);
  /* Liefere die Daten für die ts-Struktur*/
  ts.year= 2002;
  ts.month= 02;
  ts.day= 03;
  ts.hour= 10;
  ts.minute= 45;
  ts.second= 20;
  mysql_stmt_execute(stmt);
  ..
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

