如何在mysql中将datetime从任意区域转换为特定区域
我有一个mySQL表,其中记录了来自不同时区的日期。在mySQL中执行SELECT语句时,如何将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 =
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列中,并适当设置sessiontime\u zone
变量。如下列文件所述:
MySQL服务器维护多个时区设置:
[……]
- 每个连接时区。每个连接的客户端都有自己的时区设置,由会话变量提供。最初,会话变量从全局变量获取其值,但客户端可以使用以下语句更改其自己的时区: mysql> SET time_zone = timezone; mysql>设置时区=时区强>
时间戳
值转换时适用。如果要为或值使用特定于语言环境的算术,请将它们转换为UTC,执行算术,然后再转换回
我不是这么问的。时区已经记录在DatTime中,我不想操纵它。我想从字段中记录的任何区域直接转换。。。请看示例中的GMT-0400,但我必须估计输入第二个参数的“from_tz”。我想让函数在没有我帮助的情况下猜测datetime是哪一个tz,@Juniad。我用CONVERT_tz(MessageDate,'UTC','GMT')和任何其他化身得到一个空值!这就是它的存储方式:Wed May 30 2012 12:51:02 GMT-0400(东部夏令时)