Когда я использую код ниже, он получит результаты начиная с сегодняшней и прошлой недели из базы данных.
коды:
my $sqlMySQL = "
SELECT LOT,DPPROGRAM,PROCESS,FILEMODDATE,COUNT(*)
FROM dc_fst_metadata
WHERE COMMENT='$comment'
AND ***FILEMODDATE between date_sub(now(),INTERVAL 1 WEEK) and now()***
GROUP BY LOT,DPPROGRAM,PROCESS";
Вопрос в том, что сейчас я пытаюсь заменить now() (потому что я хотел бы выбрать другой день и вернуться к результатам за 7 дней вместо начала с сегодняшнего дня) с переменной и ничего не получить от db. Любое предложение или решение поместить в переменную?
Коды после ввода переменной:
$datetime="2014-01-26 00:00:00"
my $sqlMySQL = "
SELECT LOT,DPPROGRAM,PROCESS,FILEMODDATE,COUNT(*)
FROM dc_fst_metadata
WHERE COMMENT='$comment'
AND ***FILEMODDATE between date_sub('$datetime',INTERVAL 1 WEEK) and '$datetime'***
GROUP BY LOT,DPPROGRAM,PROCESS";
Большое спасибо. Ps Я новичок в perl и MYSQL.
Вам необходимо преобразовать Datetitme-String в "дату базы данных". Вместо
date_sub('$datetime',INTERVAL 1 WEEK)
использовать:
date_sub(str_to_date('$datetime','%y-%m-%d %T'),INTERVAL 1 WEEK)
Пожалуйста, (!) Не используйте литералы в SQL. Попробуйте использовать привязку