Manipulando Valores de Data e Hora na API C
O novo protocolo binário disponível no MariaDB e acima lhe permite enviar e receber dados de hora e data (DATE, TIME, DATETIME e TIMESTAMP) utilizando a estrutura MYSQL_TIME. Os membros desta estrutura estão em "Tipos de Dados de Instruções Preparadas da API C".
Para enviar um valor de dado temporal, você cria uma instrução preparada com mysql_prepare(). Então, antes de chamar mysql_execute() para executar a instrução, use o seguinte procedimento para configurar cada parâmetro temporal:
- Na estrutura
MYSQL_BINDassociado com o valor do dado, configure o membrobuffer_typepara o tipo que indique qual tipo de valor temporal você está enviando. Para valoresDATE,TIME,DATETIME, ouTIMESTAMPconfigurebuffer_typeparaMYSQL_TYPE_DATE,MYSQL_TYPE_TIME,MYSQL_TYPE_DATETIME, ouMYSQL_TYPE_TIMESTAMPrepectivamente. - Configure o membro
bufferda estruturaMYSQL_BINDcom o endereço da estruturaMYSQL_TIMEna qual você passrá o valor temporal. - Preencha os membros da estrutura
MYSQL_TIMEque são apropriadas para o tipo de valor temporal que você está passando.
Use mysql_bind_param() para ligar os dados do parâmetro a instrução. Então chame mysql_execute().
Para recuperar valores temporais, o procedimento é similar, exceto pelo fato de que você configura o membro buffer_type com o valor que você espera receber e o membro buffer com o endereço de uma estrutura MYSQL_TIME na qual o valor retornado deve ser colocado. Use mysql_bind_results() para ligar o buffer a instrução depois da chamada de mysql_execute() e antes de buscar os resultados.
Aqui está um exemplo simples que insere dados DATE, TIME e TIMESTAMP. A variável MariaDB é considerada como um handle de conexão válido.