Sto cercando di trovare la lunghezza massima di un identificatore del fuso orario. Questa è la stringa utilizzata come nome del fuso orario (ad esempio "America/New_York"). Il database tz non è utile; Non sono riuscito a trovare dettagli di implementazione.Lunghezza massima del campo "tzname" nome dell'identificatore del fuso orario
Microsoft (.NET Framework 4.5) suggests a max length of 32, ma questa sembra essere una limitazione del loro registro.
libc points to a limit called "_POSIX_TZNAME_MAX", which is 3 characters long, ma questo è un requisito minimo assoluto per la conformità POSIX. In genere, immagino che un'implementazione utilizzerà di più.
Quindi la vera domanda è: qual è una lunghezza di stringa accettabile per memorizzare in modo sicuro il fuso orario "tzname"/nome identificativo?
Sorprendente risposta! In realtà, non posso usare stringhe di lunghezza variabile perché voglio memorizzare quelle stringhe in un database. All'inizio non volevo utilizzare un campo char arbitrariamente lungo, ma penso di essere impostato su una stringa lunga 40 caratteri [1]. Metterò questi in una tabella separata e fare riferimento a loro utilizzando le chiavi esterne. 1: C'è un fuso orario ("America/Argentina/ComodRivadavia") che in realtà è lungo 32 caratteri. In futuro potrebbero esserci altri nomi ugualmente lunghi. – sleblanc
Non puoi usare varchar in SQL? –
I varchar non richiedono effettivamente una lunghezza specificata? – sleblanc