时间格式处理
JS比较时间大小
var time = '2020-12-14 15:19:00' var retry_time = new Date(Date.parse(time.replace(/-/g,"/"))); var curdate = new Date(); if (parseInt(curdate - retry_time)/1000/60 < 10){ console.log('小于10分钟') }else { console.log('大于10分钟') }
python比较时间大小
import datetime retry_time = datetime.datetime.strptime('2020-12-14 15:19:00', '%Y-%m-%d %H:%M:%S') now_time = datetime.datetime.now() mins = int((now_time - retry_time).total_seconds() / 60) if mins < 10: print('小于10分钟') else: print('大于10分钟')
展示时间与保存时间
展示到前端: curvaluedate = curvaluedate.strftime('%Y-%m-%d %H:%M:%S') if curvaluedate else "" strftime:把时间元组转化为时间字符串,展示到前端 保存到数据库: curvaluedate = datetime.datetime.strptime(curvaluedate,"%Y-%m-%d %H:%M:%S") strptime:把时间字符串转化为时间元组,保存到数据库
格式化时间
SQL Server:
日: CONVERT(varchar(100),datadate,23) ='2020-01-01' 本月:CONVERT(varchar(100),datadate,23) = dateadd(day, -1, dateadd(month, 1, CAST('2020-01-01' AS DATE))) 上月:CONVERT(varchar(100),datadate,23) = dateadd(day,-1,CAST('2020-01-01' AS DATE)) 季: CONVERT(varchar(100),datadate,23) = dateadd(day, -1, dateadd(month, 1, CAST('2020-1*3-01' AS DATE))) 半年:CONVERT(varchar(100),datadate,23) = dateadd(day, -1, dateadd(month, 1, CAST('2020-1*6-01' AS DATE))) 年: DATEPART(year, datadate) = '2020' and DATEPART(day, datadate) = DATEPART(DAY,CONVERT(varchar(100),DATEADD(ms,-3,DATEADD(MONTH,DATEDIFF(MONTH,0,datadate)+1,0)),23))
Oracle:
日:to_char(RQ,'yyyy-MM-dd') ='2020-01-01' 月:to_char(RQ,'yyyy') ='2020' and to_char(RQ,'mm') ='01' 季:to_char(RQ,'yyyy') ='2020' and to_number(to_char(RQ,'MM')) = to_number('1')*3 and to_char(RQ+1,'dd') = '01' 半年:to_char(RQ,'yyyy') ='2020' and to_number(to_char(RQ,'MM')) = to_number('1')*6 and to_char(RQ+1,'dd') = '01' 年:to_char(RQ,'yyyy') ='2020' and to_char(RQ+1,'dd') = '01'
时间加减
import datetime one_month_ago = (datetime.datetime.now() - datetime.timedelta(days=30)).strftime("%Y-%m-%d") # 一个月之前 one_month_later = (datetime.datetime.now() + datetime.timedelta(days=30)).strftime("%Y-%m-%d") # 一个月之后 print(one_month_ago, one_month_later)
当前年份前后20年:
oracle: select distinct(to_char(dt,'yyyy'))rq from ( select ADD_MONTHS(to_date(to_char(add_months(sysdate,-240), 'yyyy-mm'), 'yyyy-mm'),rownum-1) dt from dual connect by rownum<=months_between(to_date(to_char(add_months(sysdate,240), 'yyyy-mm'), 'yyyy-mm'),to_date(to_char(add_months(sysdate,-240), 'yyyy-mm'), 'yyyy-mm'))+1) order by rq sql server: select distinct(YEAR(convert(char(10), DATEADD(yy,number,DATEADD(yy,-20,getdate())),120))) 年份 from master..spt_values where type = 'p' and DATEDIFF(MI,DATEADD(yy,number,DATEADD(yy,-20,getdate())),DATEADD(yy,20,getdate()))+1 > 0 order by 年份