mysql 时间戳有效范围

事情

from_unixtime/unix_timestamp溢出, 无法使用

起因

from_unixtime返回的结果从1970-01-01到现在为止的秒数, 是int型的结果, 而int的有效范围是[-2^31 + 1, 2^31 -1], 即[-2147483648, 2147483648], 2147483648/365/24/3600换算成年也就68年多, 则最大有效期是2038年的一天.

处理

兼容之前的处理, 先可以使用, 则先减后加30年, 则可以暂时向后扩展30年.

select date_add(from_unixtime(2524464000-946656000), interval 30 year);

select (unix_timestamp(date_add(‘2050-01-01 00:00:00‘, interval -30 year)) + 946656000);

不过, 目前的做法则是, 数据表增加一个字段, 直接用varchar(10)保存时间, 而不用数值.

时间: 2024-11-08 05:33:43

mysql 时间戳有效范围的相关文章

mysql时间戳里取小时

mysql时间戳里取小时,字段:instime SELECT HOUR(FROM_UNIXTIME(instime, '%Y-%m-%d %H:%i:%S')) from quotedata LIMIT 1

MySQL时间戳转换

将时间转换为时间戳: select unix_timestamp( '2009-10-26 10-06-07' ) 如果参数为空,则处理为当前时间 : select from_unixtime(1256540102) 有些应用生成的时间戳是比这个多出三位,是毫秒表示,如果要转换,需要先将最后三位去掉,否则返回NULL MySQL时间戳转换

mysql 时间戳与日期格式的相互转换

1.UNIX时间戳转换为日期用函数: FROM_UNIXTIME() [sql] view plain copy select FROM_UNIXTIME(1156219870); 输出:2006-08-22 12:11:10 2.日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP() [sql] view plain copy Select UNIX_TIMESTAMP('2006-11-04 12:23:00'); [sql] view plain copy 输出:1162614

Java与MySQL时间戳传递/存储/协调问题--userLegacyDatetimeCode--userTimezone--serverTimezone

00. 基本问题 0.0 版本: 驱动5.1.47和8.0.17 0.1 MySQL驱动5.1有userLegacyDatetimeCode和userTimezone两个参数, 8.0没有 0.2 Java与MySQL间传递时间戳的时候, 传递的是年月日时分秒, 没有时区 0.3 MySQL传递回来的是: MySQL读取到底层存储的时间戳, 按照当前连接(MySQL侧)的时区转为年月日时分秒 0.4 但是, 两个系统时区可能会不同, userLegacyDatetimeCode和userTime

thinkphp5.1格式化mysql时间戳为日期的多种方式

方式一     使用mysql函数FROM_UNIXTIME(unix_timestamp,format)直接转换 select FROM_UNIXTIME(o.create_time,'%Y-%m-%d') create_time from table方式二使用模型获取器 withAttr, 在该方法中用date函数格式化 ->field('*')->withAttr('create_time',function ($value,$data) { return date("Y-m-

MySQL时间戳和日期相互转化

1.UNIX_TIMESTAMP():将日期时间转换成时间戳 2.FROM_UNIXTIME():将时间戳转换成日期时间 实例: SELECT NOW(),UNIX_TIMESTAMP(NOW()),FROM_UNIXTIME(UNIX_TIMESTAMP(NOW())); 版权声明:本文为博主原创文章,未经博主允许不得转载.

mysql时间戳的获取

时间戳函数:current_timestamp() 在此位置添加时间戳函数. 然后整体的写法就是下图这样: 根据当前时间戳更新有没有打钩将决定你的时间是什么时间(一个是数据完成写入的时间,一个时间戳回随时间变化而变化),所以根据需求写就好啦. 如图为创建数据的时间,时间戳会永远显示创建第4栏结束的时间,. 根据当前时间戳更新点击对号后,表里的时间戳回随着时间的变化而变化. PS:只能出现一个timestamp,出现两个的话会出现错误提示.

mysql时间戳转换成可读时间格式

代码: SELECT FROM_UNIXTIME(1234567890, '%Y-%m-%d %H:%i:%S') 附:在mysql中,一个时间字段的存储类型是int(11),怎么转化成字符类型,比方存储为13270655222,需要转化为yyyy -mm-dd的形式使用 FROM_UNIXTIME函数,具体如下: 代码: FROM_UNIXTIME(unix_timestamp,format) 返回表示 Unix 时间标记的一个字符串,根据format字符串格式化.format可以包含与DAT

mysql 时间转换 用EXCEL实现MySQL时间戳格式和日期格互转

今天项目表中需要导入好几w条数据 ,但日期由两个一个是标准时间一个为时间戳,程序中搜索是根据时间戳来搜索的,所以在网上翻箱倒柜的终于找到解决之道了,利用excel转换时间戳 时间戳转成正常日期的公式:B1=(A1+8*3600)/86400+70*365+19其中A1表示当时的1249488000数值其中B1就是你需要的结果,B1单元格属性改成日期格式就可以了.正常日期转为时间戳格式公式:A1=(C1-70*365-19)*86400-8*3600其中C1表示当时的1249488000数值其中A