Оба варианта корректны.
Возможны варианты пунктуации в зависимости от смысла. Ср.: Тебе двадцать лет, ты не женат (простое перечисление фактов) и Тебе двадцать лет – ты не женат (вторая часть предложение содержит указание на результат, следствие того, о чем говорится в первой части: ты не женат, потому что ты еще молод, тебе двадцать лет).
В живой речи слово город здесь будет лишним. Сочетание город Санкт-Петербург характерно для канцелярского языка.
Корректно: 1. Однако ночь приходит вновь и растворяет волшебство дня. 2. Он был слишком молод, неспособен подойти к ситуации серьёзно. 3. Я не знаю, люблю ли я сильнее кошек или собак. 4. Я не знаю, нравятся ли мне больше собаки или кошки.
Ответы на вопросы о том, в каких случаях нужно ставить запятые, Вы найдете в справочнике по пунктуации.
Оба сочетания возможны.
Правилен первый вариант. Название города Хива освоено и поэтому в сочетании со словом город склоняется. Ср.: Так наконец мы проникли настолько внутрь города Хивы, что оказались в самой Хиве, той, что является ее красой и славой, той, что является Хивой для всех нехивинцев… (А. Битов. Обоснованная ревность); Устроив Ханом в комнате, Чагатаев ушел наружу и до вечера ходил по городу Хиве... (А. Платонов. Джан).