char* Buffer = malloc(MAX_BUF);
создает указатель
char
Buffer
, динамически выделяетMAX_BUF
байты памяти черезmalloc
и делаетBuffer
точкой для начала выделенного пространства. Эта память выделяется в куче.char Buffer[MAX_BUF];
создает массив
Buffer
размераMAX_BUF
, который может содержать максимум символовMAX_BUF
. Обратите внимание, что вы создаете массив переменной длины (функция, введенная в C99 ), посколькуMAX_BUF
является переменной. Этот массив может быть создан в стеке.
Вам следует взглянуть на справочную документацию . Это хорошо объяснено.
В вашем случае, я думаю, вы не можете использовать между, потому что вам нужно передать два параметра
Между - findByStartDateBetween… где x.startDate между? 1 и? 2
В вашем случае используйте комбинацию LessThan
или LessThanEqual
с GreaterThan
или GreaterThanEqual
LessThan - findByEndLessThan… где x.start < ? 1
LessThanEqual findByEndLessThanEqual… где x.start < =? 1
GreaterThan - findByStartGreaterThan… где x.end>? 1
GreaterThanEqual - findByStartGreaterThanEqual… где x.end> =? 1
Вы можете использовать оператор And
и Or
объединить оба.
Я использовал следующее решение для этого:
findAllByStartDateLessThanEqualAndEndDateGreaterThanEqual(OffsetDateTime endDate, OffsetDateTime startDate);
Вы также можете написать собственный запрос, используя @Query
@Query(value = "from EntityClassTable t where yourDate BETWEEN :startDate AND :endDate")
public List<EntityClassTable> getAllBetweenDates(@Param("startDate")Date startDate,@Param("endDate")Date endDate);