Sql server 2008 SQL Server 2008时区转换

Sql server 2008 SQL Server 2008时区转换,sql-server-2008,timezone,utc,Sql Server 2008,Timezone,Utc,在我的web应用程序中,所有日期值在传递到SQL数据库之前都会转换为UTC,然后在应用程序中显示时再转换回本地时间。所以底线是数据库中的所有日期都是UTC 在我开始编写报告之前,这一切都很顺利。Crystal Reports无法(我可以检测到)进行时区转换,因此我需要在将值传递给报表之前在SQL中进行转换 SQL Server转换日期时间值的能力似乎要有限得多。我看到的唯一功能是SWITCHOFFSET。此功能的问题在于它不了解夏令时,这似乎是一个主要缺陷。在asp.net中,我可以传递带有时区

在我的web应用程序中,所有日期值在传递到SQL数据库之前都会转换为UTC,然后在应用程序中显示时再转换回本地时间。所以底线是数据库中的所有日期都是UTC

在我开始编写报告之前,这一切都很顺利。Crystal Reports无法(我可以检测到)进行时区转换,因此我需要在将值传递给报表之前在SQL中进行转换

SQL Server转换日期时间值的能力似乎要有限得多。我看到的唯一功能是
SWITCHOFFSET
。此功能的问题在于它不了解夏令时,这似乎是一个主要缺陷。在asp.net中,我可以传递带有时区的日期时间值,它会自动将其转换为UTC时间,并考虑到任何需要的夏令时调整

但是在SQL中,不要说类似于
SWITCHOFFSET(SomeDate,“东部时间”)

我现在必须说
开关偏移量(SomeDate,“-4:00”)
。但是,如果我从表中提取数据,并要求提供3月份的所有数据,会发生什么呢?3月份是夏时制开始的月份?不管怎样,有些是不正确的。我可以说-4:00或-5:00,但显然,不是两者都有


坦白说,如果不知道如何进行夏令时转换,
SWITCHOFFSET
似乎是半生不熟的。我发现Crystal Reports有一个ShiftDateTime功能,可以检测用户的本地时区,然后从UTC转换日期。这取决于用户是否正确设置了时区,我认为大多数人的计算机上的时区正确率为98%。

我发现Crystal Reports有一个ShiftDateTime功能,可以检测用户的本地时区,然后从UTC转换日期。这取决于用户是否正确设置了时区,我认为大多数人的计算机上的时区正确率为98%。

您将在这里更快地得到答案-->[亚历克斯:谢谢您的编辑。现在更容易阅读。:)您将在这里更快地得到答案-->[亚历克斯:谢谢编辑。现在更容易阅读。:)酷。你可以勾选这个作为答案。酷。你可以勾选这个作为答案。