извлечение переменной в инструкции select

#sql-server-2008

#sql-server-2008

Вопрос:

Я пытаюсь извлечь @variable в инструкции select.

пример:

 DECLARE @STARTDATE DATE
SELECT @STARTDATE = '8/1/2013'
DECLARE @ENDDATE DATE
SELECT @STARTDATE = '8/31/2013'

SELECT 'Results for DOS Serving'    @STARTDATE   'to'   @EndDate
  

Пожалуйста, любая помощь?

Спасибо.

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

1. Что-то вроде: Результаты для DOS, обслуживаемой с 8/1/2013 по 31/8/2013

2. Вы получаете сообщение об ошибке?? Если да, скажите нам, что. Я могу предположить, что вы видите «1 августа 2013» вместо «8/1/2013» — это верно?

Ответ №1:

Вы не можете просто добавить строковые данные и даты. Сначала вам необходимо преобразовать ваши даты в строковый тип данных. (Кроме того, в вашем коде вы никогда не устанавливаете @ENDDATE.

Что-то вроде этого должно приблизить вас.

 DECLARE @STARTDATE DATE
SELECT @STARTDATE = '8/1/2013'
DECLARE @ENDDATE DATE
SELECT @ENDDATE = '8/31/2013'

SELECT 'Results for DOS Serving '   CONVERT(varchar, @STARTDATE, 110)   ' to '   CONVERT(varchar, @EndDate, 110)
  

Ответ №2:

  DECLARE @STARTDATE DATE
 SET  @STARTDATE = '8/1/2013'
 DECLARE @ENDDATE DATE
 SET @ENDDATE = '8/31/2013'

 SELECT 'Results for DOS Serving '   CONVERT(varchar(20), @STARTDATE, 110)   ' to '   CONVERT(varchar(20), @EndDate, 110)
  

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

1. Не могли бы вы, пожалуйста, добавить некоторое объяснение того, почему ваш код устраняет проблему?