欢迎来到站长天空!

其它数据库

当前位置: 主页 > 数据库 > 其它数据库

SQL批量修改数据库表中的Unix时间戳

时间:2025-12-05 17:00:01|栏目:其它数据库|点击:

我接触的绝大部分PHP的Web项目,在存时间时,都是存的Unix时间戳,字段类型是int(10),显示的东西类似于1108879309这种数字。

批量修改这种Unix时间戳的MYSQL语句是:

UPDATE `table` SET addtime = unix_timestamp(DATE_SUB(from_unixtime(addtime), INTERVAL 1 MONTH)) WHERE 1

解释上面MYSQLSQL语句中涉及到的SQL函数:
1,用FROM_UNIXTIME()函数将Unix时间戳转换成 YYYY-MM-DD H:I 这种常见的格式,语法:FROM_UNIXTIME(unix_timestamp,format)
2,用DATE_SUB()函数从日期中减去指定的时间间隔,语法:DATE_SUB(date,INTERVAL expr type);如果要加上指定的时间间隔,用DATE_ADD(date,INTERVAL expr type)
DATE_SUB()DATE_ADD()函数不能直接操作Unix时间戳,所以用FROM_UNIXTIME()转换了一下
3,把Unix时间戳转换成 YYYY-MM-DD H:I 这种格式后,减去指定的时间间隔后,肯定要再转换成Unix时间戳才能更新到数据库中,用unix_timestamp()函数

以上三个函数嵌套使用,就解决了问题。

再补充下Unix时间戳的知识:
1,Unix时间戳是指从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
2,对照表

时间
1分钟 60
1小时 3600
1天 86400
1周 604800
1月(30.44天) 2629743
1年(365.24天) 31556736

上一篇:解决Job for mysqld.service failed because the control process exited with error code. See “systemctl s

栏    目:其它数据库

下一篇:MongoDB操作符中的$elemMatch问题

本文标题:SQL批量修改数据库表中的Unix时间戳

本文地址:https://zz.feitang.co/shujuku/28686.html

广告投放 | 联系我们 | 版权申明

申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:257218569 | 邮箱:257218569@qq.com

Copyright © 2018-2026 站长天空 版权所有 Powered by EyouCms冀ICP备14023439号