ASP.NET/SQL Server-设置时区
我们在美国有一个ASP.NET网站和一个SQL数据库。每当我在VB.NET中使用函数ASP.NET/SQL Server-设置时区,asp.net,sql-server,timezone,Asp.net,Sql Server,Timezone,我们在美国有一个ASP.NET网站和一个SQL数据库。每当我在VB.NET中使用函数Now(),在SQL中使用函数getdate(),我都会得到美国的当前时间。问题是,客户在菲律宾,在GMT+8时区。我的问题是,有没有办法设置一个特定数据库和网站的时区,这样当我使用这些功能时,我就能得到菲律宾的当前时间?你是怎么处理的?尽可能地,我们不希望对函数的结果日期进行减法或加法,因为将来,客户将来自其他国家。如果我们这样做,更新代码会让我们头疼 提前谢谢你 鉴于您的客户可能位于不同的时区,您应该为客户存
Now()
,在SQL中使用函数getdate()
,我都会得到美国的当前时间。问题是,客户在菲律宾,在GMT+8时区。我的问题是,有没有办法设置一个特定数据库和网站的时区,这样当我使用这些功能时,我就能得到菲律宾的当前时间?你是怎么处理的?尽可能地,我们不希望对函数的结果日期进行减法或加法,因为将来,客户将来自其他国家。如果我们这样做,更新代码会让我们头疼
提前谢谢你 鉴于您的客户可能位于不同的时区,您应该为客户存储一个时区,他们(或您)可以将该时区设置为其帐户的首选时区。将所有日期+时间存储为UTC,然后在界面中显示结果时转换为其时区 这一问题已在以下问题中得到很大程度的解决: 后续行动:
不幸的是,SQL server日期是一个系统级设置,因此它实际上不是可以在每个会话的基础上进行操作的。听起来您需要进行一些代码更改,但您可以将它们隔离开来
谢谢您的回答。除了在显示之前操纵时间,还有其他方法吗?我们有另一个应用程序,现有的一个,它有相同的场景,我认为更新代码将是一件痛苦的事情。不幸的是,SQL server日期是一个系统级别的设置,所以它不是真正可以在每个会话的基础上操作的东西。我计划在SQL server中使用getutcdate()。