网站首页 > 技术文章 正文
我常说,在互联网行业里,我是一名普通的服务员。用户对于我来说
踩坑千千万,一切宗旨都是为了让爹们满意。每天从天而降的线上反馈,没有一点点防备,也没有一丝顾虑,它就这样出现,在我的世界里...
这日又是平凡的、虚心接受用户反馈的一天。领导熟练地从SqlServer数据库中导出一份Excel文件发给了我,并吩咐我排查问题的原因。
面对庞大的数据表格,我快速浏览了一遍,确认首先需要处理的是client_time一列,内容是Unix时间戳格式,很明显,Excel不支持Unix时间戳。
来看什么是Unix时间戳Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表达方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数(或总毫秒数)。Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用。
这好说,我上来就【右键-单元格格式-选时间分类-确定】走你~然后,我看到的结果是这样的:
大意了,看来此法不通。
这有何难?用站长工具转换一下不就好了!当我转换到第3条的时候,我意识到这将是个浩大的工程...
站长工具是不支持批量转换的,这几千条数据,如此搞下去,我怕不是有个大病。
不懂就问,有一波人说,可以写个程序用编程语言转换,这...肯定可行,但时间成本有点高。
继续不懂就问,很快我找到了一种更快速有效的解决方法。
接下来,让我做个小结以备忘:
113位时间戳转日期时间(毫秒)
首先
假设A2单元格内容为13位的时间戳,再选中B2单元格,在公式框中输入
=TEXT((A2/1000+8*3600)/86400+70*365+19,"yyyy/mm/dd hh:mm:ss.000")
按Enter键确认,此时能看到,B2单元格显示了转换后的日期时间格式2021/07/03 18:43:42.573。
接下来,选中B2单元格,下拉应用公式,整列搞定。
210位时间戳转日期时间(秒)
10位时间戳的转换方法与13位时间戳同理。唯一不同的是,此时的公式为
=TEXT((A2+8*3600)/86400+70*365+19,"yyyy/mm/dd hh:mm:ss")
可能有人会问了:能不能将日期时间转换成Unix时间戳呢?既然我的标题上说的是“互换”,答案当然是能的了。
3日期时间转10位时间戳
话不多说,直接上公式
= INT((A2-70*365-19)*86400-8*3600)
其实就是把公式反过来,日期时间转13位时间戳, 我就不赘述了。
学习是一个举一反三的过程,如果只需解一时燃眉之急,记住以上公式也够用。但如果想知其然且知其所以然,就得了解公式背后的原理了。
以10位时间戳(秒)转日期为例。公式:
=TEXT((A2+8*3600)/86400+70*365+19,"yyyy/mm/dd hh:mm:ss")
A2+8*3600:当前时区的时间(秒)(A2+8*3600)/86400:将秒转换为天(A2+8*3600)/86400+70*365:加上1900年至1970年的70年(A2+8*3600)/86400+70*365+19:加上闰年多出来的天数19
Excel的日期实际上是序列值,它以1900-1-1=1为始,每过一天序列值加1;Unix时间戳是从1970-1-1 0:00:00开始到现在的秒数。
细心的人可能会发现,1900年至1970年共17个闰年,如果考虑到Excel将1900-1-1当作1,那么公式最后应该加18才对,为什么要加19呢?这是Excel的一个bug--把1900年也当作闰年了。
Tips:另有一点需注意,在Excel的【文件->工具->选项->重新计算】中,有个"使用1904日期系统"选项,如果勾选此选项,上面的公式应将70改为66,即:=TEXT((A2+8*3600)/86400+66*365+19,"yyyy/mm/dd hh:mm:ss")
到这里,完整的备注我就写完了。
外面青色的天空,阴沉又安静。我在等待一场夏日里的倾盆大雨,和一个新的开始。
猜你喜欢
- 2024-10-25 宝马X1冷车启动转速忽高忽低什么原因?
- 2024-10-25 你访问的内容存在?3秒后将自动转的惊人原因
- 2024-10-25 高中地理——每日讲1题(地球自转、晨昏线、极昼、日出时刻)
- 2024-10-25 三菱Q系列PLC,年、月、日转换成连续的字符串
- 2024-10-25 频率电压转换器是什么?频率电压转换器工作原理+结构图,秒搞定
- 2024-10-25 电动机定时正转、停止、反转、停止控制
- 2024-10-25 最近咽痛咽干又来袭?医生推荐几个缓解方法,在家就能做→
- 2024-10-25 地球自转为50年来最快:2021将飞逝而过
- 2024-10-25 热带低压生成,将于12小时内加强为台风!对海南影响→
- 2024-10-25 电机如何定时正转、停止、反转、停止控制(自动)
- 1507℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 504℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 484℃MySQL service启动脚本浅析(r12笔记第59天)
- 465℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 462℃启用MySQL查询缓存(mysql8.0查询缓存)
- 442℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 422℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 418℃MySQL server PID file could not be found!失败
- 最近发表
-
- netty系列之:搭建HTTP上传文件服务器
- 让deepseek教我将deepseek接入word
- 前端大文件分片上传断点续传(前端大文件分片上传断点续传怎么操作)
- POST 为什么会发送两次请求?(post+为什么会发送两次请求?怎么回答)
- Jmeter之HTTP请求与响应(jmeter运行http请求没反应)
- WAF-Bypass之SQL注入绕过思路总结
- 用户疯狂点击上传按钮,如何确保只有一个上传任务在执行?
- 二 计算机网络 前端学习 物理层 链路层 网络层 传输层 应用层 HTTP
- HTTP请求的完全过程(http请求的基本过程)
- dart系列之:浏览器中的舞者,用dart发送HTTP请求
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)