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

Откуда:
Сообщений: 222
Коллеги, добрый день.
Прошу Вас помочь с перводом в дату.

у меня есть дата в комментарии 07/10/2019 - мне ее нужно вытащить и перевести в datetime

Делаю следующее:

DECLARE @comment                         nvarchar(10)
DECLARE @comment_to_datetime      datetime

SET @comment = (SELECT TOP (1) SUBSTRING(comment, 32, 10) FROM dbo.table_source
                            WHERE Comment LIKE '%з%S%')
--как итог получаю: 07/10/2019 - 7е октября 2019 года. Теперь переведем в datetime.
SET @comment_to_datetime = @comment
SELECT @comment_to_datetime
--и селект последний мне уже выводит: 2019-07-10 00:00:00.000 - т.е. 10 июля 2019 года - 


как же мне все таки перевести , что бы в datetime было 7 октября 2019??.

Сообщение было отредактировано: 13 окт 19, 15:09
13 окт 19, 14:35    [21993057]     Ответить | Цитировать Сообщить модератору
 Re: Работа с датой  [new]
msLex
Member

Откуда:
Сообщений: 7726
dermama,

https://docs.microsoft.com/ru-ru/sql/tgsql/functions/cast-and-convert-transact-sql
13 окт 19, 14:56    [21993062]     Ответить | Цитировать Сообщить модератору
 Re: Работа с датой  [new]
nenastik
Member

Откуда:
Сообщений: 3
dermama,

DECLARE @temp varchar(64)
DECLARE @comment_to_datetime datetime

SET @comment_to_datetime = '07/10/2019'

SET @temp = convert(varchar, @comment_to_datetime, 104)
SET @comment_to_datetime = @temp
SELECT convert(NVARCHAR, @comment_to_datetime, 106)

Результат - 07 Oct 2019

Соответственно, вместо 106 выбираете любой нужный формат, при 106 просто наглядно видно, что день и месяц не переставлены местами:
https://docs.microsoft.com/ru-ru/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-ver15
14 окт 19, 12:29    [21993592]     Ответить | Цитировать Сообщить модератору
 Re: Работа с датой  [new]
iap
Member

Откуда: Москва
Сообщений: 46951
nenastik
dermama,

DECLARE @temp varchar(64)
DECLARE @comment_to_datetime datetime

SET @comment_to_datetime = '07/10/2019'

SET @temp = convert(varchar, @comment_to_datetime, 104)
SET @comment_to_datetime = @temp
SELECT convert(NVARCHAR, @comment_to_datetime, 106)

Результат - 07 Oct 2019

Соответственно, вместо 106 выбираете любой нужный формат, при 106 просто наглядно видно, что день и месяц не переставлены местами:
https://docs.microsoft.com/ru-ru/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-ver15

nenastik
DECLARE @comment_to_datetime      datetime

SET @comment_to_datetime = '07/10/2019'
Зачем это писать, если сами не понимаете, что может быть?
В разных условиях это может означать и 7 октября и 10 июля.
А если вместо 10 напишете, например, 13, то и ошибку можете словить.
Применяйте форматы 'YYYYMMDD', 'YYYYMMDD hh:mm:ss.nnn' или 'YYYY-MM-DDThh:mm:ss.nnn' во избежание...
14 окт 19, 14:58    [21993792]     Ответить | Цитировать Сообщить модератору
 Re: Работа с датой  [new]
nenastik
Member

Откуда:
Сообщений: 3
iap,

iap
Зачем это писать, если сами не понимаете, что может быть?
В разных условиях это может означать и 7 октября и 10 июля.

Так может быть, стоит ориентироваться на первоначальную постановку вопроса? Я исхожу из предположения, что автор темы точно знает формат даты в строке.
Кажется, рекомендовать ему поменять формат чисел в уже существующих записях - несколько поздно.
15 окт 19, 09:35    [21994286]     Ответить | Цитировать Сообщить модератору
 Re: Работа с датой  [new]
dermama
Member

Откуда:
Сообщений: 222
Коллеги, я разобрался.

DECLARE @repdate nvarchar(10)
DECLARE @repdate2 datetime

SET @repdate = (SELECT TOP (1) SUBSTRING(comment, 32, 10 ) FROM #tAudit_Source
WHERE Comment LIKE '%s%"S%')
SET @repdate2 = CONVERT(datetime, @repdate , 103)

Получаю дату в том формате, в котором мне нужно.
Спасибо самому первому комментатору.
15 окт 19, 11:51    [21994443]     Ответить | Цитировать Сообщить модератору
 Re: Работа с датой  [new]
dermama
Member

Откуда:
Сообщений: 222
Хочу также поблагодарить всеху частников.
15 окт 19, 11:52    [21994444]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить