iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql now()函数调用系统时间不对的解决方法
  • 557
分享到

mysql now()函数调用系统时间不对的解决方法

MySQLnow()MySQLnow系统时间 2023-05-25 10:05:51 557人浏览 安东尼
摘要

目录向数据库写记录最好用不用客户端时间Mysql服务器时区不等于东八区的问题mysql时区的设置和Docker有关今天在Mysql的Now函数上踩了两个坑,花了不少时间。 向数据库写记录最好用不用客户端时间 第一个坑是客

今天在Mysql的Now函数上踩了两个坑,花了不少时间。

数据库写记录最好用不用客户端时间

第一个坑是客户端、服务器的系统时间不一致。

在执行依赖时间的SQL查询的时候,使用了客户端本地的时间格式,客户端程序返回当前时间是:‘7/18/2022 10:02:43’,然而MYSQL就不能正确识别了,也没有报错,导致这个这个错误隐藏了很久才被发现。

实际上,如果给出的时间格式是这样:‘2022/7/18 10:02:43’,就会返回预期的结果。猜想这次运行客户端程序的服务器虽然也是中文版,但是内核应该是英文版的,因此系统默认的时间格式和我们常见的不同,于是MySQL把它认作是。。。(一个古怪的时间去了)

解决办法

尽可能不使用客户端的时间,不准确还有时区问题,用MySQL服务器端时间Now()来进行查询和保存记录。

MySQL服务器时区不等于东八区的问题

这次遇到的MySQL的版本默认的时区是UTC,也就是标准时间。如果数据记录的时间是北京时间,也就是东八区的时间,那么MySQL的Now函数返回的时间和数据记录的时间相差了八个小时。

查询MySQL时区:

mysql> show variables like "%time_zone%";
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | UTC    |
| time_zone        | SYSTEM |
+------------------+--------+

设置MySQL时间为北京时间

mysql> set global time_zone = '+8:00';
Query OK, 0 rows affected
mysql> set time_zone = '+8:00';
Query OK, 0 rows affected
mysql> flush privileges;
Query OK, 0 rows affected

再查询下MySQL时区,验证下Now返回了北京时间

mysql> show variables like "%time_zone%";
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | UTC    |
| time_zone        | +08:00 |
+------------------+--------+
mysql> SELECT NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2022-07-19 18:57:35 |
+---------------------+
1 row in set

MySQL时区的设置和Docker有关

这里说下花了我大量时间的坑,也就是这个服务器的MySQL是通过Docker安装的,我就懒得去修改MySQL的配置文件了,而配置文件里没有配置默认时区。

理论上,MySQL就会应用本地服务器的时区,而本地服务器的时区已经设置成东八区了,在系统控制台我能看到返回的当前时间是北京时间了。

问题就在于上面这个“理论”不靠谱,不是的,MySQL依然是返回UTC时间。

我记忆的这个“理论”应该是有问题的,但没有搞清楚具体问题是什么,怀疑是和Dockers有关,如果是直接安装的MySQL在不配置默认时区时似乎没有遇到这个问题。

解决办法:

结论是不管如何,还是手动在设置下系统的时区吧!或者在写MySQL的配置文件时,增加如下一个配置,然后才能使用Now()函数。

修改my.cnf文件,加入如下1行:

default-time-zone='+08:00' # 数据表默认时区

如果是中途 修改,需要重启Docker,不能偷懒。

到此这篇关于MySQL now函数使用的坑的文章就介绍到这了,更多相关MySQL now内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: mysql now()函数调用系统时间不对的解决方法

本文链接: https://www.lsjlt.com/news/218167.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql now()函数调用系统时间不对的解决方法
    目录向数据库写记录最好用不用客户端时间mysql服务器时区不等于东八区的问题MySQL时区的设置和docker有关今天在MySQL的Now函数上踩了两个坑,花了不少时间。 向数据库写记录最好用不用客户端时间 第一个坑是客...
    99+
    2023-05-25
    MySQL now() MySQL now系统时间
  • MYSQL时间函数方用法
    本篇内容介绍了“MYSQL时间函数方用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!测试表:root@t...
    99+
    2024-04-02
  • 系统时间错乱时使用NTP进行系统时间调整的方法
    本篇内容介绍了“系统时间错乱时使用NTP进行系统时间调整的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  我们在使用电脑的时候,有时会...
    99+
    2023-06-13
  • php中time时间不对的解决方法
    这篇文章将为大家详细讲解有关php中time时间不对的解决方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php time时间不对是因为当前时区设置不对,其解决办法:首先找到并打开PHP.ini文件;然...
    99+
    2023-06-14
  • 解决docker中mysql时间与系统时间不一致问题
    最近在Docker中装mysql时,发现数据库时间与系统时间相差8个小时。 linux服务器时间: 进入mysql,输入date如下 发现两者时区不同。因为mysql容器是在do...
    99+
    2024-04-02
  • php获取当前时间不对的解决方法
    这篇文章将为大家详细讲解有关php获取当前时间不对的解决方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php获取当前时间不对的解决办法:1、在添加时间前插入“date_default_timezone...
    99+
    2023-06-14
  • WinXP系统时间无法同步网络时间连时区也不显示的解决方法
      WinXP系统时间总是与网络上的北京时间自动同步的,如果某一天你突然发现系统时间不准了,甚至连时区也不显示,就说明电脑或者系统出现了问题。   通常有几下几种情况:   1、CMOS电池没电了。   2、在获取最近一...
    99+
    2023-06-11
    WinXP 系统时间 同步 时间 网络 时区 系统 解决
  • win7系统时间没法同步时间该怎么办win7系统时间没法同步时间解决方法
    系统时间无法同步是一些客户开启win7后发现的问题,当计算机的系统时间出现了不正确,并没有与全球数据同步得话便会发生一些app或是网页无法访问的状况,那样win7系统时间没法同步时间怎么办呢,该怎么解决这个问题必须客户们根据这儿的win7系...
    99+
    2023-07-10
  • 如何解决docker中mysql时间与系统时间不一致问题
    这篇文章将为大家详细讲解有关如何解决docker中mysql时间与系统时间不一致问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最近在Docker中装mysql时,发现数据库时间与系统时间相差8个小时。...
    99+
    2023-06-22
  • 探讨php时间戳不对的原因及解决方法
    PHP时间戳是一个十分重要的概念,用于表示一个特定时间点距离标准时间(UTC)的秒数。但是有时候,PHP时间戳可能不正确,导致程序出现问题。本文将探讨php时间戳不对的原因及解决方法。1.时区问题PHP的时间戳与UTC时间相关,但是它也受到...
    99+
    2023-05-14
  • mysql查询时间出来数字的解决方法
    这篇文章将为大家详细讲解有关mysql查询时间出来数字的解决方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql查询时间出来数字的解决办法:首先从数据库查询出数字...
    99+
    2024-04-02
  • php时间戳不对的原因及解决方法是什么
    今天小编给大家分享一下php时间戳不对的原因及解决方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。时区问题PHP的时...
    99+
    2023-07-05
  • 怎么解决vsftpd下显示的时间与系统时间不一致
    这篇文章主要介绍怎么解决vsftpd下显示的时间与系统时间不一致,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!vsftpd在安全性、高性能及稳定性三个方面有上佳的表现。它提供的主要功能包括虚拟IP设置、虚拟用户、St...
    99+
    2023-06-16
  • linux调用系统内核函数的方法是什么
    在Linux中,调用系统内核函数的方法主要有以下几种:1. 使用系统调用(system call):系统调用是用户程序通过软中断(软...
    99+
    2023-10-18
    linux
  • MySQL按时间统计数据的方法总结
    在做数据库的统计时,经常会需要根据年、月、日来统计数据,然后配合echarts来制作可视化效果。 数据库:MySQL 思路 按照时间维度进行统计的前提是需要数据库中有保留时间信息,建议是使用MySQL自带的...
    99+
    2024-04-02
  • python调用文件时找不到相对路径的解决方案
    目录python调用文件时找不到相对路径python相对路径问题总结python调用文件时找不到相对路径 current_path = os.path.dirname(__file_...
    99+
    2023-03-02
    python调用文件 python相对路径 python路径
  • 使用feign调用接口时调不到get方法的问题及解决
    目录feign调用接口调不到get方法feign调用拿不到数据feign调用接口调不到get方法 记录今天在使用springcloud的feign调用接口时踩的坑。 调用的方法是ge...
    99+
    2024-04-02
  • win10系统空间qq魔法卡片打不开解决方法
    如果你的Windows 10系统空间QQ魔法卡片无法打开,可以尝试以下解决方法:1. 重新启动计算机:有时候重启计算机可以解决一些临...
    99+
    2023-09-16
    win10
  • mysql服务路径不对的解决方法
    这篇文章主要介绍mysql服务路径不对的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql服务的路径不对的解决办法:首先创建文件夹,并重命名;然后在用cmd,cd路径,...
    99+
    2024-04-02
  • Win8系统下使用LOL盒子时打不开无法使用的解决方法
      随着WindowsXP系统的退市,作为新系统的Win8      解决方法:   LOL盒子到目前为止并没有说明操作系统不兼容的情况,如果出现无法打开盒子或者是开不了游戏,可以尝试卸载LOL盒子后重新安装,应该就能解...
    99+
    2023-06-05
    Win8 LOL盒子 解决 系统 方法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作