2013-11-20 2 views
0

Я пытаюсь создать сценарий bash, который будет запрашивать базу данных SQL точно между 12:00 и 23:59 для предыдущего дня.Запрос между точными моментами

В настоящее время у меня есть:

QUERY="SELECT * FROM CUSTOMER WHERE CUSTOMER.CREATE_DATE >= (CURDATE() - INTERVAL 1 DAY) INTO OUTFILE '/stuff/a.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';" 

Поэтому в основном я хочу, чтобы заменить CurDate() - ИНТЕРВАЛ 1 день с того, что я описал выше.

Я не могу его жестко закодировать, потому что день последовательно меняется, и я недостаточно знаком с синтаксисом bash/SQL, чтобы узнать, как изменить указанный выше запрос.

Также возможно, что CURDATE() решает это, но я хочу, чтобы кто-то это подтвердил.

Редактировать: Это MySQL.

+0

Вы должны сообщить нам, что такое СУБД (MySQL, ORACLE, sqlite), функции даты объявления немного отличаются для разных поставщиков – cha

ответ

1
QUERY="SELECT * FROM CUSTOMER WHERE CUSTOMER.CREATE_DATE >= (CURDATE() - INTERVAL 1 DAY) and TIME(CUSTOMER.CREATE_DATE) >= '12:00' and TIME(CUSTOMER.CREATE_DATE) <= '23:59' INTO OUTFILE '/stuff/a.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';" 
Смежные вопросы