cómo obtener el primer día y el último día del mes actual en python

Estoy escribiendo una consulta SQL para obtener los datos disponibles entre la primera fecha y la última fecha del mes actual en python. Para esto, ¿cómo puedo obtener la primera y la última fecha del mes actual? (En la pregunta que ya se hizo en stackoverflow solo se trata de la fecha de finalización. También quiero la respuesta como un campo de fecha como 01-03-2016 o 31-03-2016 )

Cómo obtener el primer día y el último día del mes actual en Python

Hay una función en el calendar.monthrange(year, month) estándar lib.monthrange calendar.monthrange(year, month)

 >>> import calendar >>> calendar.monthrange(2016, 3) (1, 31) 

Con cuidado , monthrange no devuelve las fechas del primer y último día, pero devuelve el día de la semana del primer día del mes y la cantidad de días en el mes, para el año y mes especificados.

Así que para obtener la primera y la última fecha de los objetos de la misma:

 >>> _, num_days = calendar.monthrange(2016, 3) >>> first_day = datetime.date(2016, 3, 1) >>> last_day = datetime.date(2016, 3, num_days) >>> first_day datetime.date(2016, 3, 1) >>> last_day datetime.date(2016, 3, 31) 

Formato de cadena

 >>> first_day.strftime('%d-%m-%Y') '01-03-2016' >>> last_day.strftime('%d-%m-%Y') '31-03-2016'