Вы можете попробовать использовать
select COUNT(*)
FROM `agency_courses`
WHERE str_to_date(agency_courses.starting_time, '%d-%m-%Y')
BETWEEN NOW()
AND DATE_SUB(STR_TO_DATE('26-04-2019', '%d-%m-%Y'), INTERVAL 30 DAY)
, но, глядя на свой пример, вы, кажется, хотите получить значение между now () и now () + 30 day
select COUNT(*)
FROM `agency_courses`
WHERE str_to_date(agency_courses.starting_time , '%d-%m-%Y')
BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 30 DAY)
С substr ()
:
substr($string, 0, -7);
Я предлагаю вам прочитать страницу Perldoc на substr ()
(на которую я ссылался выше), прежде чем просто копировать и вставлять это в свой код , Он делает то, что вы просили, но substr ()
- очень полезная и универсальная функция, и я предлагаю вам понять все, для чего вы можете ее использовать (прочитав документацию).
Кроме того, в будущем , пожалуйста, подумайте о том, чтобы погуглить свой вопрос (или, в случае Perl, найти его на Perldoc), прежде чем задавать его здесь. Вы можете найти отличные ресурсы по таким вопросам, не задавая здесь вопросов. Чтобы не задавать свой вопрос, он довольно простой, и я думаю, если бы вы попытались, вы бы сами смогли найти ответ.
Чтобы удалить последние 7 символов:
substr($str, -7) = '';
или несколько неэлегантный
substr($str, -7, length($str), '');
Чтобы получить все, кроме последних 7 символов:
substr($str, 0, -7)
Используйте функцию perl substr
, но сделайте аргумент «длина» отрицательным. Пример:
#!/usr/bin/perl
my $string = "string";
$short = substr($string, 0, -3);
printf $short . "\n";
Это вернет строку «str» с новой строкой, поскольку мы указали усечение последних трех символов. Взгляните на документацию Perl по substr () .