📜  将 utc 转换为 est sql (1)

📅  最后修改于: 2023-12-03 15:25:15.163000             🧑  作者: Mango

将 UTC 转换为 EST SQL

在编写应用程序时,通常需要将 UTC 时间转换为本地时间,例如如果您的用户位于美国东部,您可能需要将 UTC 时间转换为美国东部标准时间(EST)。

下面是一个SQL函数,可以将UTC时间转换为美国东部标准时间(EST):

CREATE FUNCTION utc_to_est(IN utctime TIMESTAMP)
RETURNS TIMESTAMP
LANGUAGE SQL
AS $$
    SELECT utctime AT TIME ZONE 'UTC' AT TIME ZONE 'America/New_York';
$$;

函数的参数是一个 UTC 时间戳,使用 AT TIME ZONE 'UTC' 将该时间戳转换为 UTC 时间,然后使用 AT TIME ZONE 'America/New_York' 将其转换为美国东部标准时间(EST)。

以下是函数的使用示例:

SELECT utc_to_est('2022-01-01 00:00:00'::timestamp);
-- 返回 2021-12-31 19:00:00

注意,需要在数据库服务器上安装 tzdata 数据库,以便使用 AT TIME ZONE 将时间戳转换为当地时间。

同时也要注意,在某些情况下,夏令时和标准时间的转换可能会影响到结果。因此,在处理本地时间时,应该了解您的时区规则,以确保功能的正确性。