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

Откуда:
Сообщений: 265
Подскажите как мне сделать так, что бы если даты нету то выводилось не NULL, а надпись "Без даты"

ISNULL(A1.Borned,'Без даты') AS Borned

Я так написал, но не работает.
6 июн 16, 11:28    [19261703]     Ответить | Цитировать Сообщить модератору
 Re: Перевод даты в текст  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
ISNULL(CAST(A1.Borned AS VARCHAR(20)), 'Без даты') AS Borned
6 июн 16, 11:29    [19261710]     Ответить | Цитировать Сообщить модератору
 Re: Перевод даты в текст  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
+ почитайте Ицика Бен Гана. Там и про преобразование типов и про волшебную букву N зачем перед строковыми литерами ставить.
6 июн 16, 11:30    [19261720]     Ответить | Цитировать Сообщить модератору
 Re: Перевод даты в текст  [new]
Pabl0
Member

Откуда:
Сообщений: 265
А можно что бы дата была не "May 16 2016 2:21PM" к примеру, а "01-01-2016 15:30:43" к примеру, стандартная.
6 июн 16, 11:57    [19261898]     Ответить | Цитировать Сообщить модератору
 Re: Перевод даты в текст  [new]
Konst_One
Member

Откуда:
Сообщений: 11540
можно, спарвку по CONVERT() откройте , там табличка преобразований для типа DATETIME
6 июн 16, 12:00    [19261921]     Ответить | Цитировать Сообщить модератору
 Re: Перевод даты в текст  [new]
Dmitry_8888
Member

Откуда:
Сообщений: 38
Pabl0,
вместо cast надо convert(varchar(20), Borned , 109 ) тогда

https://msdn.microsoft.com/ru-ru/library/ms187928(v=sql.120).aspx
6 июн 16, 12:02    [19261933]     Ответить | Цитировать Сообщить модератору
 Re: Перевод даты в текст  [new]
Pabl0
Member

Откуда:
Сообщений: 265
Я вижу эту табличку и пример, SELECT CONVERT(char(25),CONVERT(datetime,'20030722')); но куда здесь указывать стиль который мне нужен (121)
6 июн 16, 12:04    [19261955]     Ответить | Цитировать Сообщить модератору
 Re: Перевод даты в текст  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31446
Pabl0
Я вижу эту табличку и пример, SELECT CONVERT(char(25),CONVERT(datetime,'20030722')); но куда здесь указывать стиль который мне нужен (121)
Даже пример "Ж" не помог?
6 июн 16, 12:39    [19262193]     Ответить | Цитировать Сообщить модератору
 Re: Перевод даты в текст  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4279
Pabl0
Я вижу эту табличку и пример, SELECT CONVERT(char(25),CONVERT(datetime,'20030722')); но куда здесь указывать стиль который мне нужен (121)


SELECT CONVERT(char(25),CONVERT(datetime,'20030722'),121)
7 июн 16, 09:46    [19265776]     Ответить | Цитировать Сообщить модератору
 Re: Перевод даты в текст  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5489
AlanDenton
+ почитайте Ицика Бен Гана. Там и про преобразование типов и про волшебную букву N зачем перед строковыми литерами ставить.
А зачем, кстати? Я так делаю чисто на автомате уже по привычке. Вроде, почти везде юникод. Думаю, это позволяет избежать ненужного преобразования типов. Вот только отжирает в два раза больше памяти. К примеру, для '20030722' не нужен NVARCHAR(8). И даже VARCHAR(8). А всего только CHAR(8).
8 июн 16, 19:00    [19272953]     Ответить | Цитировать Сообщить модератору
 Re: Перевод даты в текст  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31446
Dmitry V. Liseev
Вот только отжирает в два раза больше памяти. К примеру, для '20030722' не нужен NVARCHAR(8). И даже VARCHAR(8). А всего только CHAR(8).
Ну, для '20030722' можно вообще вместо CHAR(8) использовать INT, или DATE :-)
Ещё в 2 раза экономия.
9 июн 16, 18:50    [19277675]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить