Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mysql中将datetime从任意区域转换为特定区域_Mysql_Convert Tz - Fatal编程技术网

如何在mysql中将datetime从任意区域转换为特定区域

如何在mysql中将datetime从任意区域转换为特定区域,mysql,convert-tz,Mysql,Convert Tz,我有一个mySQL表,其中记录了来自不同时区的日期。在mySQL中执行SELECT语句时,如何将DateTime值转换为查看用户时区 SELECT ClientID, convert_tz(MessageDate,???,???) MeetingType, MeetingDate, Comments, CompanyName FROM clientCompNotes WHERE ClID =

我有一个mySQL表,其中记录了来自不同时区的日期。在mySQL中执行SELECT语句时,如何将DateTime值转换为查看用户时区

    SELECT ClientID,
        convert_tz(MessageDate,???,???)
        MeetingType,
        MeetingDate,
        Comments,
        CompanyName
    FROM clientCompNotes
    WHERE ClID = 970392281 AND CompanyID=411972145
问题是从“MessageDate”字段中记录的日期开始接受任何时区,如下所示

 Wed May 30 2012 12:51:02 GMT-0400 (Eastern Daylight Time)
非常感谢

丹尼斯

CONVERT_TZ(dt,from_tz,to_tz)

from_tz
是当前时间所在的时区,
to_tz
是您要将其转换为的时区。

您不需要这样做。MySQL将为您执行时区转换,前提是您将时间存储在
TIMESTAMP
type列中,并适当设置session
time\u zone
变量。如下列文件所述:

MySQL服务器维护多个时区设置:

[……]

  • 每个连接时区。每个连接的客户端都有自己的时区设置,由会话变量提供。最初,会话变量从全局变量获取其值,但客户端可以使用以下语句更改其自己的时区:

    mysql> SET time_zone = timezone; mysql>设置时区=时区
当前会话时区设置会影响对区域敏感的时间值的显示和存储。这包括由或等函数显示的值,以及存储在列中或从列中检索的值。列的值从当前时区转换为UTC进行存储,从UTC转换为当前时区进行检索

当前时区设置不影响函数(如或中的值或列)显示的值。这些数据类型中的值也不会存储在UTC中;时区仅在从
时间戳
值转换时适用。如果要为或值使用特定于语言环境的算术,请将它们转换为UTC,执行算术,然后再转换回


我不是这么问的。时区已经记录在DatTime中,我不想操纵它。我想从字段中记录的任何区域直接转换。。。请看示例中的GMT-0400,但我必须估计输入第二个参数的“from_tz”。我想让函数在没有我帮助的情况下猜测datetime是哪一个tz,@Juniad。我用CONVERT_tz(MessageDate,'UTC','GMT')和任何其他化身得到一个空值!这就是它的存储方式:Wed May 30 2012 12:51:02 GMT-0400(东部夏令时)