【发布时间】:2020-10-24 11:21:54
【问题描述】:
我对 SQL 很陌生,并尝试使用以下命令从数据库(飞行)中提取数据表:
select
flight.FLT_NBR,
flight.LEG_NBR,
flight.LEG_TAIL_NBR,
flight.LEG_IATA_ORIG_CD as FLT_SCHD_ORIG_ARPT_CD,
flight.LEG_IATA_DEST_CD as FLT_SCHD_DEST_ARPT_CD,
flight.SCHD_ARR_TMSTP as Scheduled_Arrival,
flight.ACTL_ARR_TMSTP AS Actual_Arrival,
flight.SCHD_DPRT_TMSTP as Scheduled_Departure,
flight.ACTL_DPRT_TMSTP AS Actual_Departure,
from home/tulips/FT_FLIGHT_LEG flight
现在的问题是有多个国家的出发地和目的地的时间不同。如何为所有国家/地区合并相同的时区?我尝试使用命令 as time zone 'UTC' 如下所示,但它不起作用...可能是我在错误的地方添加它?
select
flight.FLT_NBR,
flight.LEG_NBR,
flight.LEG_TAIL_NBR,
flight.LEG_IATA_ORIG_CD as FLT_SCHD_ORIG_ARPT_CD,
flight.LEG_IATA_DEST_CD as FLT_SCHD_DEST_ARPT_CD,
flight.SCHD_ARR_TMSTP as Scheduled_Arrival as time zone 'UTC',
flight.ACTL_ARR_TMSTP AS Actual_Arrival as time zone 'UTC',
flight.SCHD_DPRT_TMSTP as Scheduled_Departure as time zone 'UTC',
flight.ACTL_DPRT_TMSTP AS Actual_Departure as time zone 'UTC',
from home/tulips/FT_FLIGHT_LEG flight
请帮助我为所有 Scheduled_Arrival、Actual_Arrival、Scheduled_Departure 和 Actual_Departure 设置一个时区
【问题讨论】:
-
SQL Server 上没有“本地”时区,除非您指的是服务器的本地时区;实例不知道客户端所在的时区。如果您需要转换时间,您需要将时区从客户端传递给实例(然后更改时间)或(我更喜欢)让应用程序根据客户端时区调整时间。当然,这假设所有时间都存储为 UTC 或
datetimeoffset并带有适当的时区偏移量。 -
@Larnu.. 感谢您的输入..实际上我不确定是否所有时间都存储为 UTC,所以如果我将时间设置为 UTC 而不是 LDT,我会对我的数据时序。我尝试像这样(stackoverflow.com/questions/16872007/…)在 stackoverflow 中进行查询搜索,但无法在我的查询中实现这一点。谢谢让我也更新我的问题
标签: sql sql-server database timezone