Ich versuche die maximale Länge eines Zeitzonenbezeichners zu finden. Dies ist die Zeichenfolge, die als Name der Zeitzone verwendet wird (z. B. "America/New_York"). Die tz-Datenbank ist nicht hilfreich; Ich konnte keine Implementierungsdetails finden.Maximale Länge des Feldes "tzname"/Zeitzonenbezeichner
Microsoft (.NET Framework 4.5) suggests a max length of 32, aber dies scheint eine Einschränkung ihrer Registrierung zu sein.
libc points to a limit called "_POSIX_TZNAME_MAX", which is 3 characters long, aber dies ist eine absolute Mindestanforderung für POSIX-Konformität. Normalerweise wird eine Implementierung mehr verwenden.
Also die eigentliche Frage ist: Was ist eine akzeptable String-Länge, um Zeitzone "tzname"/Identifier-Name sicher zu speichern?
Erstaunliche Antwort! Eigentlich kann ich Strings variabler Länge nicht verwenden, weil ich diese Strings in einer Datenbank speichern möchte. Zuerst wollte ich kein willkürlich langes Char-Feld verwenden, aber ich denke, dass ich auf eine 40-Zeichen lange Saite gesetzt bin [1]. Ich werde diese in eine separate Tabelle legen und mit fremden Schlüsseln auf sie verweisen. 1: Es gibt eine Zeitzone ("America/Argentina/ComodRivadavia"), die eigentlich 32 Zeichen lang ist. In der Zukunft könnte es andere gleich lange Namen geben. – sleblanc
Können Sie nicht Varchar in SQL verwenden? –
Benötigen nicht Varchars tatsächlich eine bestimmte Länge? – sleblanc