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

Откуда:
Сообщений: 20
Мне нужно текстовое поле вывести в виде даты, чтобы ее сравнить с датой из другой таблицы. Данные записаны в виде 25/04/2018

Если использовать следующее
SELECT CAST(CONVERT(CHAR(8),CONVERT(DATE,'25.04.2018',104),112) AS INT)

Получилось: 20180425

SELECT CONVERT(varchar(10),[Analysis Date],101) from csv1

Выводит данные в таком виде: 25/04/2018

Пыталась связать их, но:
SELECT CAST(CONVERT(CHAR(8),CONVERT(DATE, CONVERT(varchar(10),[Analysis Date],101),104),112) AS INT) from csv1

Вывело ошибку:
Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.


Что-то запуталась с датами
26 апр 18, 16:12    [21371426]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать текстовое поле в дату  [new]
iap
Member

Откуда: Москва
Сообщений: 46951
CONVERT(DATE,'25/04/2018',103)
После этого сравнивать с чем-то типа DATE (DATETIME и т.п.)
26 апр 18, 16:21    [21371453]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать текстовое поле в дату  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7383
PARSE() SQL2012+
26 апр 18, 16:31    [21371480]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать текстовое поле в дату  [new]
Tishh
Member

Откуда:
Сообщений: 20
SELECT PARSE([Analysis Date] AS datetime) AS [result_name] FROM csv1

SELECT CONVERT(DATE,CONVERT(varchar(10),[Analysis Date],101),103) from csv1


не работает (
26 апр 18, 16:46    [21371519]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать текстовое поле в дату  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
[Analysis Date] какой тип ?

и зачем этот кошмар?

SELECT CONVERT(DATE,CONVERT(varchar(10),[Analysis Date],101),103) from csv1
26 апр 18, 16:49    [21371526]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать текстовое поле в дату  [new]
Tishh
Member

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

[Analysis Date] - поле типа varchar(50)
26 апр 18, 16:53    [21371533]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать текстовое поле в дату  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
Tishh
Konst_One,

[Analysis Date] - поле типа varchar(50)


и что там за значения лежат?
26 апр 18, 16:54    [21371537]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать текстовое поле в дату  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
вот так проверяли?
select CONVERT(DATE,[Analysis Date],103) as [дата] from csv1
26 апр 18, 16:56    [21371546]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать текстовое поле в дату  [new]
Tishh
Member

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

Данные записаны в виде 25/04/2018

Эта таблица у меня образуется в результате импорта
26 апр 18, 16:56    [21371550]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать текстовое поле в дату  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36686
Tishh
SELECT PARSE([Analysis Date] AS datetime) AS [result_name] FROM csv1

SELECT CONVERT(DATE,CONVERT(varchar(10),[Analysis Date],101),103) from csv1


не работает (

Неужели?

SELECT PARSE('25/04/2018' AS datetime using 'ru-ru') AS [result_name]

SELECT CONVERT(DATE,CONVERT(varchar(10),'25/04/2018',101),103)


А что у вас там в csv, уж сами разбирайтесь.
26 апр 18, 16:58    [21371558]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать текстовое поле в дату  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
ну, или
declare @sd varchar(50) = '25/04/2018'

set dateformat dmy
if cast(@sd as date) < getdate() print 'yes'
26 апр 18, 17:03    [21371574]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать текстовое поле в дату  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
давайте показывайте ваши данные:

select top(10) [Analysis Date]  from csv1
26 апр 18, 17:05    [21371580]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать текстовое поле в дату  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36686
Гавриленко Сергей Алексеевич
А что у вас там в csv, уж сами разбирайтесь.

Да и вообще, халява же:

select * from csv where try_parse([Analysis Date] AS datetime using 'ru-ru') is null
26 апр 18, 17:06    [21371587]     Ответить | Цитировать Сообщить модератору
 Re: Конвертировать текстовое поле в дату  [new]
Tishh
Member

Откуда:
Сообщений: 20
Разобралась наконец в том, что мешало. Думала, что это не будет иметь значения и мешать этому.

Во время импорта данных почему-то в оду из строк записывались сами заголовки. Я вручную удалила эту строку и заработала команда.

Всем спасибо за помощь!
26 апр 18, 17:08    [21371602]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить