阿里云 mysql 时区_如何设置MySQL的时区?-问答-阿里云开发者社区-阿里云

我认为这可能有用:

在MySQL中可以在三个地方设置时区: 在[mysqld]部分的“ my.cnf”文件中 default-time-zone='+00:00' @@ global.time_zone变量 要查看它们设置为什么值:

SELECT @@global.time_zone; 要为其设置值,请使用以下任一方法:

SET GLOBAL time_zone = '+8:00'; SET GLOBAL time_zone = 'Europe/Helsinki'; SET @@global.time_zone = '+00:00'; (使用诸如“ Europe / Helsinki”之类的时区意味着您必须正确填充时区表。)

请记住,这+02:00是一个偏移量。Europe/Berlin是一个时区(具有两个偏移量),并且CEST是对应于特定偏移量的时钟时间。

@@ session.time_zone变量 SELECT @@session.time_zone; 要设置它,请使用以下任一方法:

SET time_zone = 'Europe/Helsinki'; SET time_zone = "+00:00"; SET @@session.time_zone = "+00:00"; 两者都可能返回SYSTEM,这意味着它们使用了my.cnf中设置的时区。

为了使时区名称起作用,必须设置时区信息表:http : //dev.mysql.com/doc/refman/5.1/en/time-zone-support.html。我还提到了如何在此答案中填充这些表。

要获取当前时区的偏移量为 TIME SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP); 如果您的时区为+2:00,它将返回02:00:00。

要获取当前的UNIX时间戳: SELECT UNIX_TIMESTAMP(); SELECT UNIX_TIMESTAMP(NOW()); 将timestamp列获取为UNIX时间戳 SELECT UNIX_TIMESTAMP(timestamp) FROM table_name 获取UTC日期时间列作为UNIX时间戳记 SELECT UNIX_TIMESTAMP(CONVERT_TZ(utc_datetime, '+00:00', @@session.time_zone)) FROM table_name 注意:更改时区不会更改存储的datetime或timestamp,但是它将为现有时间戳列显示不同的日期时间,因为它们在内部存储为UTC时间戳,并在外部显示在当前MySQL时区中。来源:stack overflow

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值