本文包含如下问题:
- 1 mysql如何参看时间
- 2 mysql如何查看当前时区
- 3 mysql如何修改当前时区
- 4 mysql如何抓换时区
- 5 其他
1 mysql如何参看时间
mysql dbu@(none):coucou> select curdate();
+------------+
| curdate() |
+------------+
| 2018-05-15 |
+------------+
1 row in set
Time: 0.004s
mysql dbu@(none):coucou> select curtime();
+-----------+
| curtime() |
+-----------+
| 15:49:05 |
+-----------+
1 row in set
Time: 0.004s
mysql dbu@(none):coucou> select now();
+---------------------+
| now() |
+---------------------+
| 2018-05-15 15:49:11 |
+---------------------+
1 row in set
Time: 0.004s
mysql dbu@(none):coucou> select utc_timestamp();
+---------------------+
| utc_timestamp() |
+---------------------+
| 2018-05-15 07:49:22 |
+---------------------+
1 row in set
Time: 0.004s
mysql dbu@(none):coucou>
-
比较常用的就是now; utf_timestamp
-
注意 now 是跟时区有关的,时区变了,now当然要变。
2 如何查看mysql的时区
mysql dbu@(none):coucou> show variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | UTC |
| time_zone | +08:00 |
+------------------+--------+
2 rows in set
Time: 0.005s
mysql dbu@(none):coucou>
3 修改系统的时区。
- 1 可以通过修改my.cnf
在 [mysqld] 文件之下加
default-time-zone=timezone
来修改时区。如:
default-time-zone = '+8:00'
修改完了记得记得重启msyql
注意一定要在 [mysqld] 之下加 ,否则会出现错误
unknown variable 'default-time-zone=+8:00'
修改完先可以通过命令检查下配置是否正确
mysql --help
- 2 直接在会话中改。
set set time_zone = '+8:00';
4 转换时区
select CONVERT_TZ(now(),'+00:00','+8:00')
5 其他
- 系统底层都是储存的timestamp
- 所以推荐项目使用timestamp
- 如果便于查看时间,一定要设置mysql的时区为当前时区,这样
select now()
所显示的时间会与当前时间一致。
applicaion 与mysql 交互的时候。
通过echo sqlalchemy 语句,发现app在mysql中插入数据的时候实际上insert 的是字符串。所以是不包含时区概念的。
mysql如何生成一个特定时间
可以产生一个变量,根据select now()的结果稍作更改
set @dt = '2018-06-07 14:59:50'
refer
https://dev.mysql.com/doc/refman/5.7/en/time-zone-leap-seconds.html
网友评论