我想使用SQL将start
和end
列上的时间从UTC转换为EST。经过数小时的搜索,我在网上找到了以下查询,但没有成功(以下查询不正确(。
有没有一种干净的方法可以根据字段的日期从UTC转换为EST?
start
列具有2019-06-01 05:00:00
的当前值
end
列具有2019-06-30 04:00:00
的当前值
我希望这些在美国东部时间。
提前谢谢。
UPDATE my_table
SET start = from_tz(to_timestamp('2009-11-17 18:40:05','yyyy-mm-dd hh24:mi:ss'), 'UTC'), end = from_tz(to_timestamp('2009-11-17 18:40:05','yyyy-mm-dd hh24:mi:ss'), 'UTC')
AT TIME zone 'America/New_York'
WHERE id = 3;
您可以使用CONVER_TZ
您可以使用"+00:00",这样服务器就不必查找它,这将节省时间,就像ysth在评论中解释的那样
<blockquote\SELECT CONVERT_TZ('2007-03-11 2:00:00','UTC','America/New_York') AS time1, CONVERT_TZ('2007-03-11 3:00:00','UTC','America/New_York') AS time2;
time1|time2:------------------|:------------------2007-03-10 21:00:00|2007-03-10 22:00:00
UPDATE my_table
SET start = CONVERT_TZ('2009-11-17 18:40:05','UTC','America/New_York')
, end = CONVERT_TZ('2009-11-17 18:40:05','UTC','America/New_York')
WHERE id = 3;
>表'db_477873842.my_Table'不存在<blockquote\
SELECT
CONVERT_TZ('2007-03-11 2:00:00','+00:00','America/New_York') AS time1,
CONVERT_TZ('2007-03-11 3:00:00','+00:00','America/New_York') AS time2;
>time1|time2:------------------|:------------------2007-03-10 21:00:00|2007-03-10 22:00:00<blockquote\
UPDATE my_table
SET start = CONVERT_TZ('2009-11-17 18:40:05','+00:00','America/New_York')
, end = CONVERT_TZ('2009-11-17 18:40:05','+00:00','America/New_York')
WHERE id = 3;
>表'db_477873842.my_Table'不存在
db<gt;小提琴这里