У меня есть дата в формате YYYYMMDD в Varchar. Нужно изменить это на формат гггг-мм-дд и добавить 1 к дате. Следует преобразовать обратно в формат ГГГГММДД.
Может ли кто-нибудь помочь достичь этого.
У меня есть дата в формате YYYYMMDD в Varchar. Нужно изменить это на формат гггг-мм-дд и добавить 1 к дате. Следует преобразовать обратно в формат ГГГГММДД.
Может ли кто-нибудь помочь достичь этого.
Сначала необходимо преобразовать. Используйте CONVERT, потому что вам нужно сообщить функции преобразования, какой формат у вашего dataetime varchar. Далее в статье, на которую я ссылаюсь, вы видите различные допустимые форматы. Просматривая эту таблицу, вы узнаете, что формат ГГГГММДД называется формат ISO, и поэтому третий параметр нашего CONVERT должен быть равен 112.
а затем используйте DATEADD и снова CONVERT.
SELECT CONVERT(VARCHAR,DATEADD(d, 1,CONVERT(DATETIME, '20140121', 112) ),112)
Для 2008 и выше вы можете использовать тип данных DATE, в sqlserver 2005 существуют только типы DATETIME и SMALLDATETIME.
рабочий sqlfiddle