2010-03-22 9 views
3

Je dois obtenir le dernier jour du mois en cours. comment puis-je obtenirdernier jour du mois en cours?

+1

double exact: http://stackoverflow.com/questions/182742/how-do-i-calculate-the-last-day-of-the-month-in-sql – Gabe

+1

Quel serveur DB? – beach

+0

Besoin de connaître l'implémentation SQL. – galford13x

Répondre

4
set dateformat dmy 

select dateadd(d, -1, dateadd(m, 1, '01-' + convert(varchar, month(getdate())) + '-' + convert(varchar, year(getdate())))) 

ajouter un mois au premier de ce mois, moins un jour.

+0

merci cela fonctionne bien –

0

Oracle

SELECT LAST_DAY(SYSDATE) AS Last_day_of_month FROM DUAL; 

SQL Server

SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1,0)) AS Last_day_of_month 
+0

cela ne fonctionne pas dans tous les cas, comme le 31 janvier. Vous ajoutez un mois et obtenez 28/29 février; alors soustrayez 31. échoue. – Gullbyrd

+0

Bon appel Gullbyrd. J'ai mis à jour l'exemple SQL Server. – beach

5

SQLite (sqlite3)

Calculer le dernier jour du mois en cours.

SELECT date('now','start of month','+1 month','-1 day'); 

Commander ce lien et si vous utilisez sqlite3 sqlite datetime functions

+0

Ya ça marche –

0

Une alternative: ajouter un mois à la date, puis soustraire la valeur de jour résultant du nouveau mois:

select day(dateAdd(d, -day(dateAdd(m,1,'2012-01-31')), dateAdd(m, 1, '2012-01-31')))

1

SQLITE QUERY FOR CALCULATE NOMBRE DE JOURS DANS UN MOIS ACTUEL

select strftime('%d',datetime('now','start of month','+1 month','-1 second')); 
Questions connexes