Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PDO&;MSSQL-如何更改每个连接的时区_Php_Sql_Sql Server 2012_Timezone - Fatal编程技术网

Php PDO&;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没有会话时区的概念,因此对您的问题的答案很简单-否 但是

我希望在PDO-MSSQL连接上设置时区(每个会话),以便使用getdate()存储和返回用户的本地时间,而不是服务器默认值(欧洲/伦敦)

谷歌为MYSQL返回数百条搜索结果;但MSSQL没有任何功能。看起来这就是MYSQL的答案:

$PDO->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND=>“设置时区='欧洲/伦敦'

MSSQL是否有一个等价物

谢谢


Chris

Microsoft SQL Server没有会话时区的概念,因此对您的问题的答案很简单-否

但是,在SQL Server中有处理时区的解决方案。在SQL Server 2016中,增加了对时区之间数据元素转换的支持(类似于MySQL的
convert_z
功能)。但这使用的是Microsoft Windows时区标识符,而不是标准的IANA/TZDB标识符。如果您希望支持这些标识符(如您提到的
Europe/London
),则需要使用类似于我的开源项目的东西

只有当您确实需要在数据库层进行时区转换时,才需要这两种方法中的任何一种。在绝大多数情况下,您实际上不需要这样做。相反,在应用程序层处理时区转换。PHP对时区有很好的支持,因此您不需要在数据库中进行时区转换


如果您想到了一个特定的场景,那么就提出一个新的问题(在搜索查看是否已经有人问过这个问题之后)。

谢谢-我感觉这就要来了;正如您所说,我可以在应用层处理它;在连接处添加一行会更容易!