时间格式处理

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 @   困了就睡觉觉  Views(168)  Comments(0Edit  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示