我正在编写一个SQL查询来获取python中当前月份的第一个日期和最后一个日期之间的可用数据。为此,我如何获得当月的第一个和最后一个日期。 (在stackoverflow中已经提出的问题只处理结束日期。我也希望答案为日期字段,如01-03-2016或31-03-2016 )
答案 0 :(得分:18)
如何在python中获取当月的第一天和最后一天
标准库calendar.monthrange(year, month)
>>> import calendar
>>> calendar.monthrange(2016, 3)
(1, 31)
小心,monthrange
不会返回第一天和最后一天的日期,但会返回该月第一天的工作日和天数月份,指定的年份和月份。
所以要从中获取第一个和最后一个日期对象:
>>> _, 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)
>>> first_day.strftime('%d-%m-%Y')
'01-03-2016'
>>> last_day.strftime('%d-%m-%Y')
'31-03-2016'