我将一堆数据存储在mysql数据库中,作为一堆unix样式时间戳(UTC).以前,这些已经通过Perl的gmtime()格式化.似乎MySQL的FROM_UNIXTIME()函数试图提供帮助,并且正确用于夏令时,但我真的不希望它.
有没有一个方便的方法将结果从系统时区(GMT / BST)转换为UTC,或者交替确定DST是否在特定时间内有效?
解决方法:
你有没有尝试过:
mysql> SELECT NOW();
+---------------------+
| NOW() |
+---------------------+
| 2011-04-04 22:54:13 |
+---------------------+
1 row in set (0.00 sec)
mysql> set @var = unix_timestamp(NOW());
Query OK, 0 rows affected (0.00 sec)
mysql> SET time_zone='+00:00';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT NOW();
+---------------------+
| NOW() |
+---------------------+
| 2011-04-04 20:54:23 |
+---------------------+
1 row in set (0.00 sec)
mysql> SELECT FROM_UNIXTIME(@var);
+---------------------+
| FROM_UNIXTIME(@var) |
+---------------------+
| 2011-04-04 20:54:17 |
+---------------------+
1 row in set (0.02 sec)
如果要使用命名时区,可以查看this page以获取更多信息,以及如何填充系统上的时区表.
标签:mysql,internationalization
来源: https://codeday.me/bug/20190630/1339570.html