Php PDO&;MSSQL-如何更改每个连接的时区
我希望在PDO-MSSQL连接上设置时区(每个会话),以便使用getdate()存储和返回用户的本地时间,而不是服务器默认值(欧洲/伦敦) 谷歌为MYSQL返回数百条搜索结果;但MSSQL没有任何功能。看起来这就是MYSQL的答案: $PDO->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND=>“设置时区='欧洲/伦敦' MSSQL是否有一个等价物 谢谢Php PDO&;MSSQL-如何更改每个连接的时区,php,sql,sql-server-2012,timezone,Php,Sql,Sql Server 2012,Timezone,我希望在PDO-MSSQL连接上设置时区(每个会话),以便使用getdate()存储和返回用户的本地时间,而不是服务器默认值(欧洲/伦敦) 谷歌为MYSQL返回数百条搜索结果;但MSSQL没有任何功能。看起来这就是MYSQL的答案: $PDO->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND=>“设置时区='欧洲/伦敦' MSSQL是否有一个等价物 谢谢 ChrisMicrosoft SQL Server没有会话时区的概念,因此对您的问题的答案很简单-否 但是
ChrisMicrosoft SQL Server没有会话时区的概念,因此对您的问题的答案很简单-否 但是,在SQL Server中有处理时区的解决方案。在SQL Server 2016中,增加了对时区之间数据元素转换的支持(类似于MySQL的
convert_z
功能)。但这使用的是Microsoft Windows时区标识符,而不是标准的IANA/TZDB标识符。如果您希望支持这些标识符(如您提到的Europe/London
),则需要使用类似于我的开源项目的东西
只有当您确实需要在数据库层进行时区转换时,才需要这两种方法中的任何一种。在绝大多数情况下,您实际上不需要这样做。相反,在应用程序层处理时区转换。PHP对时区有很好的支持,因此您不需要在数据库中进行时区转换
如果您想到了一个特定的场景,那么就提出一个新的问题(在搜索查看是否已经有人问过这个问题之后)。谢谢-我感觉这就要来了;正如您所说,我可以在应用层处理它;在连接处添加一行会更容易!