Perl и MYSQL. Могу ли я заменить now () переменными?

0

Когда я использую код ниже, он получит результаты начиная с сегодняшней и прошлой недели из базы данных.

коды:

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.

  • 0
    Какую ошибку вы получаете?
  • 0
    @ deathron5000 не получает ничего от БД, но я уверен, что внутри БД есть данные. Извините, что запутал вас, коды не получили ошибок. Я сейчас изменяю тему.
Показать ещё 2 комментария
Теги:

1 ответ

1

Вам необходимо преобразовать Datetitme-String в "дату базы данных". Вместо

date_sub('$datetime',INTERVAL 1 WEEK)

использовать:

 date_sub(str_to_date('$datetime','%y-%m-%d %T'),INTERVAL 1 WEEK)

Пожалуйста, (!) Не используйте литералы в SQL. Попробуйте использовать привязку

Ещё вопросы

Сообщество Overcoder
Наверх
Меню