📜  mysql 选择东部时间的UTC时间 - SQL(1)

📅  最后修改于: 2023-12-03 14:44:30.803000             🧑  作者: Mango

MySQL 选择东部时间的UTC时间 - SQL

在许多情况下,需要使用统一的时间标准。UTC(Coordinated Universal Time,协调世界时)是这样一个时间标准,它使用24小时制,并与格林威治标准时间相同。当涉及到跨时区操作时,将时间转换为UTC时间可能非常有用。在MySQL中,使用几个函数可以实现这个目标。

NOW() 函数

MySQL中的NOW()函数返回当前的日期和时间。使用它可以获得当前时间的UTC时间。

SELECT NOW();

输出:

2021-12-17 08:39:51
CONVERT_TZ() 函数

MySQL中的CONVERT_TZ()函数将日期时间从一个时区转换到另一个时区。它需要三个参数:要转换的日期时间、要转换的时区和目标时区。

在这里,我们希望将东部时间(EST)转换为UTC时间。EST是美国纽约市和华盛顿特区等城市的当地时间,世界上许多城市使用EST作为它们的标准时间。

SELECT CONVERT_TZ(NOW(), 'America/New_York', 'UTC');

输出:

2021-12-17 13:39:51

注意:需要做两方面的处理。

  1. 将MySQL中的时区设置为UTC时区: SET time_zone = 'UTC';

  2. 将转换时区的参数设置为符合标准的时区字符串,例如'America/New_York'。

TIMESTAMP 函数

在MySQL中,TIMESTAMP是一个与时区无关的类型,它表示日期和时间,从1970年1月1日00:00:00起过去的秒数,以UTC的格式存储。因此,如果将当前的日期和时间转换为TIMESTAMP类型,它将表示以UTC格式存储的当前日期和时间。

SELECT UNIX_TIMESTAMP(NOW());

输出:

1639715971
FROM_UNIXTIME() 函数

FROM_UNIXTIME()函数将UNIX时间戳转换为日期时间格式。我们可以使用这个函数将之前的UNIX时间戳转换回UTC日期时间格式。

SELECT FROM_UNIXTIME(1639715971);

输出:

2021-12-17 08:39:31

结论:

在MySQL中,可以使用多个函数将当前日期时间转换为UTC时间,或将已知时区的日期时间转换为UTC时间。除了在数据库中存储UTC时间之外,将日期时间转换为UTC格式是许多应用程序需要的任务之一。