Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вывод на экран переменной и текста в одной строке  [new]
boscher
Member

Откуда:
Сообщений: 5
Всем привет. Как можно реализовать?
Вариант (PRINT @date + N'some text') выдает ошибку "The data types date and nvarchar are incompatible in the add operator."
26 авг 14, 10:28    [16492300]     Ответить | Цитировать Сообщить модератору
 Re: Вывод на экран переменной и текста в одной строке  [new]
Glory
Member

Откуда:
Сообщений: 104751
boscher
Всем привет. Как можно реализовать?
Вариант (PRINT @date + N'some text') выдает ошибку "The data types date and nvarchar are incompatible in the add operator."

А как вы себе представляете оператор + для даты и текстовой строки ?
26 авг 14, 10:29    [16492309]     Ответить | Цитировать Сообщить модератору
 Re: Вывод на экран переменной и текста в одной строке  [new]
boscher
Member

Откуда:
Сообщений: 5
Glory,
я не хочу их сложить. Смысл в том, чтобы вывести на экран "26.08.2014 some text"
26 авг 14, 10:31    [16492319]     Ответить | Цитировать Сообщить модератору
 Re: Вывод на экран переменной и текста в одной строке  [new]
Glory
Member

Откуда:
Сообщений: 104751
boscher
я не хочу их сложить.

А сервер откуда знает, что вы хотиет сделать с переменными разных типов ?
26 авг 14, 10:33    [16492332]     Ответить | Цитировать Сообщить модератору
 Re: Вывод на экран переменной и текста в одной строке  [new]
boscher
Member

Откуда:
Сообщений: 5
Glory,
К чему ваш предыдущий пост? Я и спрашиваю как это реализовать. Если вы знаете, напишите. К чему разводить дискуссию?
26 авг 14, 10:38    [16492359]     Ответить | Цитировать Сообщить модератору
 Re: Вывод на экран переменной и текста в одной строке  [new]
Glory
Member

Откуда:
Сообщений: 104751
boscher
К чему разводить дискуссию?

Если вы не прнимаете, что такое разные типы данных, то надо не дискуссию разводить, а идти читать хелпы.
А то одного желания сложить "кирпичи" с "гвоздями" мало.
26 авг 14, 10:45    [16492390]     Ответить | Цитировать Сообщить модератору
 Re: Вывод на экран переменной и текста в одной строке  [new]
boscher
Member

Откуда:
Сообщений: 5
Ответ:
print convert(varchar(20),@date) + ' some text'
или
print cast(@date as varchar(20)) + ' some text'

А как-нибудь "склеить" эти значения можно? Если, допустим, встретится случай, когда преобразование будет невозможно?
Как в PHP например:
echo $date.' - some text';
26 авг 14, 10:52    [16492435]     Ответить | Цитировать Сообщить модератору
 Re: Вывод на экран переменной и текста в одной строке  [new]
Офисный Хомячок
Member

Откуда: Офис
Сообщений: 1358
boscher
Glory,
К чему ваш предыдущий пост? Я и спрашиваю как это реализовать. Если вы знаете, напишите. К чему разводить дискуссию?


DECLARE @date DATE

SET @date=GETDATE()

--PRINT @date + N'some text'

PRINT CAST(@date AS VARCHAR(10)) + N' some text'


Glory вам пытается объяснить, что складывать число и дату бессмысленно.

Необходимо привести одно к другому.

Так как строка у вас произвольная, то логичнее приводить дату в строку, а не наоборот.

Как это сделать очень толково с примерами написано на сайте мелкомягких.
26 авг 14, 10:57    [16492459]     Ответить | Цитировать Сообщить модератору
 Re: Вывод на экран переменной и текста в одной строке  [new]
Glory
Member

Откуда:
Сообщений: 104751
boscher
А как-нибудь "склеить" эти значения можно?

Ну так вы уже "склеили"

boscher
Если, допустим, встретится случай, когда преобразование будет невозможно?

К строке всегда все можно преобразовать

boscher
Как в PHP например:
echo $date.' - some text';

А что в PHP появился тип данных date ?
Или к чему этот пример конкатенации двух символьных типов ?
26 авг 14, 10:58    [16492462]     Ответить | Цитировать Сообщить модератору
 Re: Вывод на экран переменной и текста в одной строке  [new]
Офисный Хомячок
Member

Откуда: Офис
Сообщений: 1358
boscher
Ответ:
print convert(varchar(20),@date) + ' some text'
или
print cast(@date as varchar(20)) + ' some text'

А как-нибудь "склеить" эти значения можно?


Что значит "склеить"?


boscher
Если, допустим, встретится случай, когда преобразование будет невозможно?


В ms sql server дату (имеется в веду стандартные типы данных предназначенные для хранения даты или даты времени) всегда можно преобразовать в строку, обратно не всегда.

boscher
Как в PHP например:
echo $date.' - some text';


Что делает ваш пример?
26 авг 14, 11:01    [16492482]     Ответить | Цитировать Сообщить модератору
 Re: Вывод на экран переменной и текста в одной строке  [new]
boscher
Member

Откуда:
Сообщений: 5
Спасибо всем! Теперь все понятно.
Про PHP, там действительно получается, что выводится просто текст.
26 авг 14, 11:05    [16492506]     Ответить | Цитировать Сообщить модератору
 Re: Вывод на экран переменной и текста в одной строке  [new]
o-o
Guest
Офисный Хомячок
Glory вам пытается объяснить, что складывать число и дату бессмысленно.

да нет, Glory пытается объяснить, что кто-то не понимает приведение типов,
ведь перед сложением будет предпринята попытка либо кирпичи к гвоздям привести, либо наоборот.

много чего можно альтернативно сложить (и дату с числом преспокойно можно,
дата [как она сейчас хранится] -- это ж "число дней прошедших с..."),
только хорошо бы еще знать приоритеты типов,
тогда результат не будет удивлять и ошибок конвертации можно избежать.

select getdate() + 1 as tomorrow, 
       2 + '1' as [хотели типа 21?]
------------------------------------
tomorrow	хотели типа 21?
2014-08-27 09:25:06.287	3


но надежнее всего явно приводить
26 авг 14, 11:27    [16492681]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить