[mysql] Come ottengo il primo giorno del mese corrente?


Answers

Stavo cercando una query simile in cui avevo bisogno di utilizzare il primo giorno di un mese nella mia query. La funzione last_day non ha funzionato per me, ma DAYOFMONTH è stato utile.

Quindi, se qualcuno sta cercando lo stesso problema, il codice seguente restituisce la data del primo giorno del mese corrente.

SELECT DATE_SUB(CURRENT_DATE, INTERVAL DAYOFMONTH(CURRENT_DATE)-1 DAY);

Confronto tra una colonna della data e il primo giorno del mese:

select * from table_name where date between 
DATE_SUB(CURRENT_DATE, INTERVAL DAYOFMONTH(CURRENT_DATE)-1 DAY) and CURRENT_DATE
Question

Devo selezionare i dati dal database MySQL tra il 1 ° giorno del mese corrente e il giorno corrente.

select*from table_name 
where date between "1st day of current month" and "current day"

Qualcuno può fornire un esempio funzionante di questa query?




SELECT date_sub(current_date(),interval dayofmonth(current_date())-1 day) as first_day_of_month;



select * from <table>
where <dateValue> between last_day(curdate() - interval 1 month + interval 1 day)
                  and curdate();



Un approccio meno ortodosso potrebbe essere

SELECT * FROM table_name 
WHERE LEFT(table_name.date, 7) = LEFT(CURDATE(), 7)
  AND table_name.date <= CURDATE();

poiché una data è compresa tra il primo di un mese e ora equivale a una data in questo mese e prima di ora. Sento che questo è un po 'più facile per gli occhi rispetto ad altri approcci, però.




Ho usato la seguente query. Ha funzionato benissimo per me in passato.

select date(now()) - interval day(now()) day + interval 1 day



Links



Tags

mysql mysql   date   get