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

Откуда:
Сообщений: 14
Здравствуйте, у Меня есть переменная @date1 типа SMALLDATETIME, и мне нужно присвоить значение @date1 к @date2 в формате 'dd/mmm/yy', пытаюсь сделать при помощи функции FORMAT() и SSMS видает ошибку:

The conversion of a nvarchar data type to a smalldatetime data type resulted in an out-of-range value.

Подскажите пожалуйста как правильно решить задачу. Заранее Спасибо

DECLARE @date1 AS SMALLDATETIME = '2020-02-19 00:00:00'
DECLARE @date2 AS SMALLDATETIME
SET @date2 = FORMAT(@date1, 'dd/mmm/yy')
SELECT @date2
16 май 18, 18:00    [21414544]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата переменной типа SMALLDATETIME  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
У smalldatetime нет никакого формата -- он появляется при отображении или конвертации в строку.
DECLARE @date1 AS SMALLDATETIME = '2020-02-19 00:00:00'
DECLARE @date2 AS varchar (50)
SET @date2 = FORMAT(@date1, 'dd/mmm/yy')
SELECT @date2


Сообщение было отредактировано: 16 май 18, 18:01
16 май 18, 18:01    [21414552]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата переменной типа SMALLDATETIME  [new]
Tigran117
Member

Откуда:
Сообщений: 14
Так тоже не получается, выдает результат 19/00/20
17 май 18, 08:14    [21415582]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата переменной типа SMALLDATETIME  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Tigran117
Так тоже не получается, выдает результат 19/00/20

DECLARE @date1 AS SMALLDATETIME = '2020-02-19 00:00:00'
DECLARE @date2 AS varchar (50)
SET @date2 = FORMAT(@date1, 'dd/MM/yy')
SELECT @date2
17 май 18, 08:34    [21415611]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата переменной типа SMALLDATETIME  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20519
Tigran117
в формате 'dd/mmm/yy'
Документация вытаращивает глаза на шаблон mmm. По её мнению, такого не существует. А для сокращённого названия месяца она предлагает шаблон MMM. Увы, размер имеет значение...
17 май 18, 08:44    [21415635]     Ответить | Цитировать Сообщить модератору
 Re: Изменение формата переменной типа SMALLDATETIME  [new]
Tigran117
Member

Откуда:
Сообщений: 14
Да вы правы, размер имеет значение,))) 'dd/mmm/yy' SSMS понимает как 'день/минута/год',
то есть
DECLARE @date1 AS SMALLDATETIME = '2020-02-19 00:55:00'
SELECT FORMAT(@date1, 'dd/mmm/yy') результат будет 19/55/20
17 май 18, 14:07    [21417041]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить