Question: here is my code

```
SELECT h.ENTERED_DATE,
       d.DENOMINATION,
       sum(h.invoice_total-h.TOTTAL_DISCOUNT)as amount 
  FROM sales_details d
       LEFT JOIN sales_header h 
            ON d.invoice_id=h.invoice_id
 WHERE entered_by='2254'
--HERE IS NEED TO GET DETAILS CURRENT MONTH 1st Date to Sysdate 
GROUP BY 
       ENTERED_DATE,
       d.DENOMINATION
ORDER BY 
       entered_date,
       denomination

```

* In my application just send only **sysdate** as parameter.
**no need to SYSDATE-30.
need 1st date to SYSDATE**

here shows my two tables
**sales\_header table**
![enter image description here](https://i.stack.imgur.com/AWcn6.png)

**sales\_details table**
![enter image description here](https://i.stack.imgur.com/viDLQ.png)

Answer: 
try this:

```
WHERE entered_by='2254'
AND ENTERED_DATE BETWEEN trunc (sysdate, 'mm')/*current month*/ AND SYSDATE

```
```
select 'WITHIN' as result 
from dual
where '28-FEB-2019' between trunc(last_day(add_months(sysdate, -1))+1) and trunc(last_day(sysdate));

```

Take care because there are many examples that are using just the month and because of that you could get records from all the year, year is not being considered.
Also as you can see I am using trunc it is to avoid timing inconsistencies and just use the date.