网站维护运行建设报告,wordpress 联系我们表单,网站设计与开发期末考试题,上海网站建设导航数据预处理的过程中#xff0c;往往需要计算当前日期往前推12个月#xff08;或者本周#xff0c;本月#xff0c;本季#xff0c;本年#xff09;中间发生的事情#xff0c;
因此这里贴上相关处理的代码#xff1a;
Python代码#xff1a;
import datetime
from d…数据预处理的过程中往往需要计算当前日期往前推12个月或者本周本月本季本年中间发生的事情
因此这里贴上相关处理的代码
Python代码
import datetime
from datetime import timedelta
now datetime.datetime.now()
#天
today now#今天
yesterday now - timedelta(days1)#昨天
tomorrow now timedelta(days1)#明天#周
w_start now - timedelta(daysnow.weekday())#本周第一天
w_end now timedelta(days6-now.weekday())#本周最后一天#月
m_start datetime.datetime(now.year, now.month, 1)#本月第一天
m_end datetime.datetime(now.year, now.month 1, 1) - timedelta(days1)#本月最后一天#季度
month (now.month - 1) - (now.month - 1) % 3 1
q_start datetime.datetime(now.year, month, 1)#本季第一天
q_end datetime.datetime(now.year, month 3, 1) - timedelta(days1)#本季最后一天#年
y_start datetime.datetime(now.year, 1, 1)#本年第一天
y_end datetime.datetime(now.year 1, 1, 1) - timedelta(days1)#本年最后一天
上述方法有一个缺点那就是如果当前日期是 3 月31 日那么类比上述方法的上一个月同日期就是月份减一即 2 月31 日然而 2 月没有 31 日这样就会报错。这个问题 relativedelta() 函数可以解决
import datetime
from dateutil.relativedelta import relativedeltanow datetime.date.today()#当前日期
print(当前日期,now )
print(历史倒推一天的日期, now - relativedelta(days1))
print(历史倒推一周的日期, now - relativedelta(weeks1))
print(历史倒推一月的日期, now - relativedelta(months1))
print(历史倒推一年的日期, now - relativedelta(years1))print(未来前进一天的日期, now - relativedelta(days-1))
print(未来前进一周的日期, now - relativedelta(weeks-1))
print(未来前进一月的日期, now - relativedelta(months-1))
print(未来前进一年的日期, now - relativedelta(years-1))
输出
当前日期 2019-02-26
历史倒推一天的日期 2019-02-25
历史倒推一周的日期 2019-02-19
历史倒推一月的日期 2019-01-26
历史倒推一年的日期 2018-02-26
未来前进一天的日期 2019-02-27
未来前进一周的日期 2019-03-05
未来前进一月的日期 2019-03-26
未来前进一年的日期 2020-02-26 MySQL代码
select date_add(now(),interval -5 year); #前推 5 年
select date_add(now(),interval -3 year); #前推 3 年
select date_add(now(),interval -1 year); #前推 1 年select date_add(now(),interval -12 month);#前推 12 个月
select date_add(now(),interval -6 month); #前推 6 个月
select date_add(now(),interval -1 month); #前推 1 个月select date_add(now(),interval -60 day); #前推 60 天
select date_add(now(),interval -30 day); #前推 30 天
select date_add(now(),interval -1 day); #前推 1 天
Oracle 代码
select * from test t where t.timesystimestamp-interval1year; #前推 1 年
select * from test t where t.timesystimestamp-interval1month; #前推 1 月
select * from test t where t.timesystimestamp-interval30day; #前推 30 天