在mysql数据库中也有时区转换的函数与方法,比如 convert_tz 函数,date_add(),date_sub()以及timestampadd()函数等等。
mysql convert_tz 时区转换查询函数介绍
在 mysql 数据库中可以使用 convert_tz 函数实现时区转换查询。
convert_tz:转换时间的值,由提定的时区转到指定的时间,并返回结果,如无效则返回null
语法:
convert_tz(dt,form_tz,to_tz)
参数:
dt:一个指定格式后的时间。
form_tz:转换之前的时间,可以是时间代码也可以是与GMT的偏移量
to_tz:要转换的时间,可以是时间代码也可以是与GMT的偏移量
mysql convert_tz 时区转换查询函数使用示例
例:mysql UTC时间转北京时间的方法
方法1:
注:utc时间相对于北京时间少八个小时
mysql> select CONVERT_TZ("2021-06-25 12:00:00","+00:00","+08:00"); +-----------------------------------------------------+ | CONVERT_TZ("2021-06-25 12:00:00","+00:00","+08:00") | +-----------------------------------------------------+ | 2021-06-25 20:00:00 | +-----------------------------------------------------+ 1 row in set (0.00 sec)
方法2:
now()表示当前的时间!
mysql> select CONVERT_TZ(now(),"+00:00","+08:00"); +-------------------------------------+ | CONVERT_TZ(now(),"+00:00","+08:00") | +-------------------------------------+ | 2021-06-18 05:07:57 | +-------------------------------------+ 1 row in set (0.00 sec)
MySQL date_add(),date_sub() ,timestampadd函数转换时间
date_add() 与 date_sub()函数可以在指定的时间上加上或减去一个相应的时间,这样也可以达到时区转换的目的。
date_add():在指定的时间上加上或减去指定的时间
date_sub():在指定的时间上减去指定的时间
timestampadd():
例1:mysql 使用 date_add() 函数转换时区
mysql> select date_add('2021-06-18 12:00:00', interval -8 hour); +---------------------------------------------------+ | date_add('2021-06-18 12:00:00', interval -8 hour) | +---------------------------------------------------+ | 2021-06-18 04:00:00 | +---------------------------------------------------+ 1 row in set (0.00 sec)
例2:mysql 使用 date_sub() 函数转换时区
mysql> select date_sub('2021-06-18 12:00:00', interval 8 hour); +--------------------------------------------------+ | date_sub('2021-06-18 12:00:00', interval 8 hour) | +--------------------------------------------------+ | 2021-06-18 04:00:00 | +--------------------------------------------------+ 1 row in set (0.00 sec)
例3:mysql 使用 timestampadd() 函数转换时区
mysql> select timestampadd(hour, -8, '2021-06-18 12:00:00'); +-----------------------------------------------+ | timestampadd(hour, -8, '2021-06-18 12:00:00') | +-----------------------------------------------+ | 2021-06-18 04:00:00 | +-----------------------------------------------+ 1 row in set (0.00 sec)
到此这篇关于mysql中时区转换的方法就介绍到这了。如果敌人让你生气,那就说明你还没有战胜过他的把握。更多相关mysql中时区转换的方法内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!