mysql 时间总结

本文包含如下问题:


  • 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

https://blog.csdn.net/Stewart/article/details/9412163

https://blog.csdn.net/mchdba/article/details/9763521

你可能感兴趣的:(mysql 时间总结)