时间格式处理

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 年份

 

posted @ 2020-03-14 15:32  困了就睡觉觉  Views(174)  Comments(0)    收藏  举报