📜  将 UTC 转换为本地时区的 SQL 查询(1)

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

将 UTC 转换为本地时区的 SQL 查询

在进行时间处理时,经常需要将UTC时间转换为本地时区时间。本文将介绍如何使用SQL查询来实现该功能。

SQL Server

在SQL Server中,可以使用AT TIME ZONE关键字将UTC时间转换为本地时区时间。以下是示例查询:

SELECT CONVERT(datetimeoffset, '2021-06-25 05:00:00') AT TIME ZONE 'UTC' AT TIME ZONE 'Central Standard Time'

上述查询中,首先将UTC时间转换为datetimeoffset类型,然后使用AT TIME ZONE关键字将其转换为本地时区时间。Central Standard Time是本地时区的名称,可以根据实际情况进行更改。

MySQL

在MySQL中,使用CONVERT_TZ函数进行UTC时间转换。以下是示例查询:

SELECT CONVERT_TZ('2021-06-25 05:00:00', 'UTC', 'America/Chicago')

上述查询中,第一个参数是要转换的时间(必须是YYYY-MM-DD HH:MI:SS格式),第二个参数是要从哪个时区转换,第三个参数是要转换到哪个时区。

PostgreSQL

在PostgreSQL中,使用AT TIME ZONE关键字和时区名称进行UTC时间转换。以下是示例查询:

SELECT ('2021-06-25 05:00:00'::timestamp at time zone 'UTC' at time zone 'America/Chicago')

上述查询中,timestamp函数将时间转换为时间戳类型,然后使用AT TIME ZONE关键字将其转换为本地时区时间。America/Chicago是本地时区的名称,可以根据实际情况进行更改。

Oracle

在Oracle中,使用FROM_TZAT TIME ZONE函数进行UTC时间转换。以下是示例查询:

SELECT FROM_TZ(TO_TIMESTAMP('2021-06-25 05:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'UTC') AT TIME ZONE 'America/Chicago'

上述查询中,TO_TIMESTAMP函数将时间字符串转换为时间戳类型,然后使用FROM_TZ函数将其转换为带时区的时间类型。最后,使用AT TIME ZONE函数将其转换为本地时区时间。America/Chicago是本地时区的名称,可以根据实际情况进行更改。

总结

无论使用哪种数据库,都可以使用相应的函数或关键字将UTC时间转换为本地时区时间。根据需要选择适合自己的方法即可。