负数 mysql 时间戳_【mysql】负数时间戳日期转换问题
使用 mysql 提取数据时,遇到一个问题:负时间戳无法通过FROM_UNIXTIME 方法转化成正常的日期:
FROM_UNIXTIME(-2641363543)
Null
这个时间戳对应的正确的日期其实是: 1886-04-20 00:00:00,我搜索了一下,有人建议采用加减的方式计算负值时间戳的日期:
DATE_ADD(FROM_UNIXTIME(0), INTERVAL -2641363543 SECOND)
1886-04-19 23:54:17
但转化出来的,和正确值有几分钟差距.我找了一些网页端的时间戳转换工具,他们都可以转换成正确值,我就不知道是怎么实现的,另外上面这种转化逻辑的问题是在哪呢?
回答
0代表是1970年1月1日0时0分0秒
可得:1969年12月31日23时59分0秒的值应该是:-60
也就是说:以0秒结尾的时间,时间戳必然也以0结尾。
而-2641363543以3结尾,必然不对应
看完评论后,又找了下相关的信息,简单总结两句:
先看在线时间转换两张图:
有点意思,两个时间戳差1秒,但是转换后的时间差了几分钟。
相关的资料显示: 在1927年12月31日23:59:59时,往后面的一秒应该是1928年1月1日 0:0:0,但是这个时间被往后调整了5分52秒,而成了,1927年12月31日的,23:54:08,于是,完成了352秒的穿越。
相关资料也显示,在某些(JAVA8并不适用)的JAVA版本中,两个相关1秒的时间实际上却在时间戳上相差了353秒。
但无论是对1927年进行了调整还是对1900年进行了调整,可以确认的是在历史上这352秒的穿越是存在的。如果你使用编程语言考虑到了这个穿越的因素,则会出现你遇到的上述问题。
至于为什么要如此调整,有人猜原因是:为了将上海的时间与北京时间相统一,所以上海时间与北京时间差的就是这352秒。
但这个好像并占不住脚,北京与上海的经度差在5度,每1度差4分钟,5度应该是20分钟,大概为1200秒。
时区问题,谷歌浏览器时间是1901年前的时区按+805而不是+800,因此时间戳-2641363543对应 1886-04-20 00:00:00 的时区是+805。
负数 mysql 时间戳_【mysql】负数时间戳日期转换问题相关推荐
- java unix 时间戳_「unix时间戳」Unix时间戳和Java中的时间戳的区别 - seo实验室
unix时间戳 前言 最近在使用阿里的日志服务时,遇到了一些Timestamp的坑,所以特意做了了解并整理了一下.在这之前首先得介绍一下Unix时间戳:unix时间戳是从1970年1月1日(UTC/G ...
- mysql 中国时间转成美国时间_中国与美国日期转换
//修改时间 public String getNextDay(Date date) { // 获取当天日期 SimpleDateFormat sdf = new SimpleDateFormat(& ...
- 微信小程序时间加法_微信小程序日期转换、比较、加减
//日期转时间戳 functiongetUnixTime(dateStr){var newstr = dateStr.replace(/-/g,'/');var date = newDate(news ...
- sas数字转日期格式_[转载]SAS中日期转换全攻略
以下的内容,要感谢 webgu 在人大论坛上的亲情奉献. 在SAS处理中,特别是在多个数据集合并过程中,我们经常要遇到 日期格式不匹配的情况,但是 日期 又是一个非常关键的 匹配关键词,所以有必要 将 ...
- java 日期转换视频_自定义转换器实现日期转换_JavaEE框架(Maven+SpringMvc+Spring+MyBatis)全程实战教程_Java视频-51CTO学院...
SpringMVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring MVC 分离了控制器.模型对象.分派器以及处理程序对象 ...
- js 将日期转换成时间戳
接上一篇文章,用到了对时间的排序,来看下怎么把日期转换成时间戳吧! 一.日期转换成时间戳 js字符串转化成时间戳可以使用自带函数Date(要转化的时间字符串)先转化为Date类型,之后再将Date类型 ...
- mysql计算多少天后的日期_数据库 - mysql 计算某个时间,多少天后,多少个月后时间戳...
数据库设计(一): 数据库设计步骤: 需求分析--------> 逻辑设计 ------------> 物理设计----------->维护优化. [1]需求分析:分析需要存储的 ...
- mysql时间戳和日期转换
时间戳转日期 mysql有自带的函数可以直接转换,函数是FROM_UNIXTIME 数据表中 create_time 存储的是时间戳,如 1429063399 mysql的执行语句:(日期合格可以自己 ...
- php mysql日期戳转时间戳_php日期转时间戳,指定日期转换成时间戳
写过PHP+MySQL的程序员都知道有时间差,UNIX时间戳和格式化日期是我们常打交道的两个时间表示形式,Unix时间戳存储.处理方便,但 是不直观,格式化日期直观,但是处理起来不如Unix时间戳那么 ...
最新文章
- android lcd调试 高通平台lcd调试深入分析总结(mipi和rgb接口)
- x722网卡支持百兆吗_同样是无线网卡,为什么要选千兆的?
- 转载---SQL Server XML基础学习2之--FOR XML AUTO/RAW
- linux 下使用 tc 模拟网络延迟和丢包
- python中列表实现自加减元素_python初学者知识整合
- JavaScrip入门-变量计算%函数
- 【bzoj5072】[Lydsy十月月赛]小A的树 树形背包dp
- 【是程序猿就干了这碗心灵鸡汤】我们这一代人的困惑
- echarts x轴 名称_图例|西门子S7-1200 PLC的轴组态与点动控制详解
- Latex错误:xxx PDF objects out of 1000 (max. 8388607) ……
- requirejs加载layerdate.js遇到的各种坑
- NVIDIA Jetson TK1学习与开发(二):入门指导
- 查看android端BKS类型的证书库
- 如何推广企业微信号?企业进行公众号的推广有哪些方法?
- homelede软路由设置方法_二级lede软路由设置方法,lede设置软路由网卡
- 算法设计与分析: 5-22 魔方(Rubik's Cube)问题
- 晶体硅太阳能电池产线性能跟踪项目
- 给女朋友写的h5(移动端)小游戏,超简单
- 微信小程序之图书借阅系统(含源码+论文+答辩PPT等)
- 秋冬巧护发,不让落发如落叶