2017-05-25 8 views
0

Ich bin auf der Suche nach der Zeitzone (pro Sitzung) auf einer PDO-MSSQL-Verbindung, so dass getdate() statt lokalen Zeiten eines Benutzers verwendet werden kann als die Server-Standardeinstellung (Europa/London)PDO & MSSQL - Wie ändere ich die Zeitzone pro Verbindung?

Google gibt Hunderte von Ergebnissen für MYSQL zurück; aber nichts für MSSQL. So sieht es aus wie das ist die Antwort für MYSQL:

$ PDO-> setAttribute (PDO :: MYSQL_ATTR_INIT_COMMAND => "time_zone SET = 'Europe/London'

Gibt es ein Äquivalent für MSSQL

?

Dank

Chris

Antwort

0

Microsoft SQL Server nicht über das Konzept einer Sitzungszeitzone, so dass die Antwort auf Ihre Frage ist einfach - Nr

Es gibt jedoch Lösungen zum Arbeiten mit Zeitzonen in SQL Server. Mit SQL Server 2016 wurde die Unterstützung für AT TIME ZONE hinzugefügt, sodass Datenelemente zwischen Zeitzonen konvertiert werden können (ähnlich der Funktion CONVERT_TZ von MySQL). Dies verwendet jedoch Microsoft Windows-Zeitzonen-IDs, keine standardmäßigen IANA/TZDB-IDs. Wenn Sie Unterstützung für diese möchten (wie Europe/London Sie erwähnten), dann müssen Sie etwas wie meine SQL Server Time Zone Support Open-Source-Projekt verwenden.

Einer dieser Ansätze ist nur erforderlich, wenn Sie auf der Datenbankebene wirklich Zeitzonenumwandlungen durchführen müssen. In den allermeisten Fällen müssen Sie das nicht wirklich tun. Behandeln Sie stattdessen Zeitzonenumwandlungen auf der Anwendungsebene. PHP hat wirklich gute Unterstützung für Zeitzonen, daher sollte es nicht nötig sein, dies in der Datenbank zu tun.

Wenn Sie ein bestimmtes Szenario im Sinn hatten, dann stellen Sie eine neue Frage dazu (nach der Suche, ob es schon gefragt wurde).

+0

Danke - Ich hatte das Gefühl, dass es kommen würde; Ich kann damit auf der Anwendungsebene umgehen, wie Sie sagen; es wäre einfach viel einfacher gewesen, eine einzige Linie an der Verbindung hinzuzufügen! –

Verwandte Themen