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_BIND
associado com o valor do dado, configure o membrobuffer_type
para o tipo que indique qual tipo de valor temporal você está enviando. Para valoresDATE
,TIME
,DATETIME
, ouTIMESTAMP
configurebuffer_type
paraMYSQL_TYPE_DATE
,MYSQL_TYPE_TIME
,MYSQL_TYPE_DATETIME
, ouMYSQL_TYPE_TIMESTAMP
repectivamente. - Configure o membro
buffer
da estruturaMYSQL_BIND
com o endereço da estruturaMYSQL_TIME
na qual você passrá o valor temporal. - Preencha os membros da estrutura
MYSQL_TIME
que 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.