Я хочу, чтобы программа запускалась каждую минуту. Программа использует код C для получения текущего времени и даты, а затем я пытаюсь получить запрос MySQL для сравнения времени в поле базы данных, чтобы узнать, совпадает ли оно с текущим временем. Я только хочу использовать час и минуту, когда exctraing значение из MySQL, а не секунды. Я не могу заставить MySQL работать.MySQL Query выбирает поля, в которых значение времени в таблице равно текущему времени
Обратите внимание, что% s в коде предназначено для программы C для вставки текущего времени, сгенерированного кодом c.
Вот MySQL:
SELECT active, type, date, time, action, command FROM `Alarm`
WHERE TIME_FORMAT('time', '%H:%i') = '%s'
При печати запроса после snprintf пытается вставить переменное время я получаю это как выход, казалось, что он пытается вставить значение в% я и % не с, и что формат времени не работает:
ВЫБОР alarm_active, alarm_category, alarm_date, ALARM_TIME, alarm_action, alarm_command оТ Alarm
ГДЕ TIME_FORMAT (ALARM_TIME, '% Н: 6297664') = '< F '
Вот код C:
char buffer[1024];
const char *query = "SELECT alarm_active, alarm_category, alarm_date, alarm_time, alarm_action, alarm_command FROM `Alarm` WHERE (alarm_time='%s')";
//const char *query = "SELECT active, type, date, time, action, command FROM `Alarm` WHERE active = '1'";
//Checking to see if connection to DB is succefful
if (mysql_query(conn, query) != 0)
{
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
} else {
if (snprintf(buffer, sizeof(buffer), query, current_time) >= sizeof(buffer))
{
printf("Issue with Buffer \n");
exit (-1);
}
Остальной код, который получает время:
char current_time [11];
time_t raw;
time(&raw);
struct tm *time_ptr;
time_ptr = localtime(&raw);
now with the "tm", you can format it to a buffer
char current_date[11];
char current_time [11];
strftime(current_date, sizeof(current_date), "%m/%d/%Y", time_ptr);
strftime(current_time, sizeof(current_time), "%H:%M", time_ptr);
Просьба уточнить вашу конкретную проблему или добавить дополнительные сведения, чтобы точно указать, что вам нужно. Как это написано в настоящее время, трудно точно сказать, что вы просите. См. Страницу «Как спросить», чтобы помочь прояснить этот вопрос. – Olaf
Если вы хотите просто запускать программу каждую минуту: это похоже на использование кувалды, чтобы взломать орех. Настройте хроном работу! – Olaf
Запрос выполняется, но записи не отображаются, что означает, что часть запроса не дает мне желаемых результатов. – Vlad