The new binary protocol available in MySQL 4.1 and above allows
        you to send and receive date and time values
        (DATE, TIME,
        DATETIME, and TIMESTAMP),
        using the MYSQL_TIME structure. The members
        of this structure are described in
        Sección 24.2.5, “Tipos de datos de sentencias preparadas de la API C”.
      
        To send temporal data values, you create a prepared statement
        with mysql_stmt_prepare(). Then, before
        calling mysql_stmt_execute() to execute the
        statement, use the following procedure to set up each temporal
        parameter:
      
            In the MYSQL_BIND structure associated
            with the data value, set the buffer_type
            member to the type that indicates what kind of temporal
            value you're sending. For DATE,
            TIME, DATETIME, or
            TIMESTAMP values, set
            buffer_type to
            MYSQL_TYPE_DATE,
            MYSQL_TYPE_TIME,
            MYSQL_TYPE_DATETIME, or
            MYSQL_TYPE_TIMESTAMP, respectively.
          
            Set the buffer member of the
            MYSQL_BIND structure to the address of
            the MYSQL_TIME structure in which you
            pass the temporal value.
          
            Fill in the members of the MYSQL_TIME
            structure that are appropriate for the type of temporal
            value you're passing.
          
        Use mysql_stmt_bind_param() to bind the
        parameter data to the statement. Then you can call
        mysql_stmt_execute().
      
        To retrieve temporal values, the procedure is similar, except
        that you set the buffer_type member to the
        type of value you expect to receive, and the
        buffer member to the address of a
        MYSQL_TIME structure into which the returned
        value should be placed. Use
        mysql_bind_results() to bind the buffers to
        the statement after calling
        mysql_stmt_execute() and before fetching the
        results.
      
        Here is a simple example that inserts DATE,
        TIME, and TIMESTAMP data.
        The mysql variable is assumed to be a valid
        connection 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);
  }
  /* set up input buffers for all 3 parameters */
  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);
  /* supply the data to be sent in the ts structure */
  ts.year= 2002;
  ts.month= 02;
  ts.day= 03;
  ts.hour= 10;
  ts.minute= 45;
  ts.second= 20;
  mysql_stmt_execute(stmt);
  ..
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

