Попытка преобразовать SQL getdate в varchar без промежуточных символов

#sql #sql-server

#sql #sql-сервер

Вопрос:

У меня есть список автоматически сгенерированных таблиц в MS-SQLServer, которые отличаются только датой, указанной в конце имени. Проблема в том, что я хочу создать скрипт, который всегда ссылается на таблицу «x дней назад».

Так, например, если имя таблицы будет: dbo.tablename_20200825

Я могу «приблизиться» к нужному мне формату даты в виде строки со следующим утверждением и стилем

 select convert(varchar(10), getdate(), 102);
  

введите описание изображения здесь

Однако у меня все еще есть эти периоды разделения между каждой частью даты.

Как мне сделать так, чтобы результирующая строка отображалась как ‘20200825’ вместо ‘2020.08.25’

Как всегда, спасибо за любую информацию и помощь.

Комментарии:

1. Для имен таблиц переменных потребуется динамический sql. Как правило, это плохой дизайн.

2. Документация на CONVERT предоставляет вам всю необходимую информацию для этого.

Ответ №1:

Я думаю, вы ищете 112

 select convert(varchar(10), getdate(), 112);
  

Результаты

 20200825
  

Ответ №2:

Вы можете использовать format() , чтобы получить именно то, что вы хотите:

 select format(getdate(), 'yyyyMMdd')