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

Откуда:
Сообщений: 146
Подскажите, пожалуйста, есть файл C:/date.txt , там хранится всего одна дата, например 02-08-2018
как мне в sql выбрать те данные, которые больше этой даты
если я так пропишу запрос
SELECT Dt, CustomerName, ItemRelation, SaleCount, 
               DocumentNum, DocumentYear, IsPromo
FROM [Action].dbo. mytab1 WHERE Dt > C:/date.txt

ответ
Ошибка преобразования даты или времени из символьной строки.
Как мне сделать именно условие > C:/date.txt, а не >02-08-2018?
2 авг 18, 15:38    [21625180]     Ответить | Цитировать Сообщить модератору
 Re: извлечение данных по дате из внешнего файла  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Kontox
Как мне сделать именно условие > C:/date.txt, а не >02-08-2018?

це новий жарт :)
2 авг 18, 15:41    [21625201]     Ответить | Цитировать Сообщить модератору
 Re: извлечение данных по дате из внешнего файла  [new]
iiyama
Member

Откуда:
Сообщений: 642
Kontox,
Off: Вы поторопились с постом, сегодня только четверг

PS. Файл где лежит, на сервере или у вас локально на машине?
2 авг 18, 15:48    [21625222]     Ответить | Цитировать Сообщить модератору
 Re: извлечение данных по дате из внешнего файла  [new]
Kontox
Member

Откуда:
Сообщений: 146
iiyama , файл лежит на сервере.
2 авг 18, 15:56    [21625276]     Ответить | Цитировать Сообщить модератору
 Re: извлечение данных по дате из внешнего файла  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5162
Kontox,

дату из файла можно получить, например, так :

declare @data varchar(20)
select  @data=left(BulkColumn,20) from  OPENROWSET(BULK 'c:\temp\data.txt', SINGLE_CLOB) AS x
select @data 


только дату в файле лучше иметь в формате YYYYMMDD, иначе неявная конвертация выдаст вам либо ошибку, либо не тот месяц и день )
2 авг 18, 15:59    [21625299]     Ответить | Цитировать Сообщить модератору
 Re: извлечение данных по дате из внешнего файла  [new]
Kontox
Member

Откуда:
Сообщений: 146
А как мне потом сделать условие >
declare @data varchar(20)
select  @data=left(BulkColumn,20) from  OPENROWSET(BULK 'data.txt', SINGLE_CLOB) AS x
select @data 

SELECT Dt, CustomerName, ItemRelation, SaleCount, 
               DocumentNum, DocumentYear, IsPromo
FROM [Action].dbo. mytab1 WHERE Dt > @data 

в таком случае я эту ошибку получаю

Сообщение 242, уровень 16, состояние 3, строка 9
Преобразование типа данных varchar в тип данных datetime привело к выходу значения за пределы диапазона.
2 авг 18, 16:16    [21625375]     Ответить | Цитировать Сообщить модератору
 Re: извлечение данных по дате из внешнего файла  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5162
Kontox
в таком случае я эту ошибку получаю

Сообщение 242, уровень 16, состояние 3, строка 9
Преобразование типа данных varchar в тип данных datetime привело к выходу значения за пределы диапазона.


я же про это предупредил уже

komrad
только дату в файле лучше иметь в формате YYYYMMDD, иначе неявная конвертация выдаст вам либо ошибку, либо не тот месяц и день
2 авг 18, 16:30    [21625439]     Ответить | Цитировать Сообщить модератору
 Re: извлечение данных по дате из внешнего файла  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5162
Kontox,

вот так попробуйте


declare @data varchar(20)
select  @data=left(BulkColumn,20) from  OPENROWSET(BULK 'data.txt', SINGLE_CLOB) AS x

/*prepare date*/
select @data [original]
set @data=replace(@data,'-','.')
set @data=PARSENAME(@data,1)+PARSENAME(@data,2)+PARSENAME(@data,3)
select @data [formatted]

SELECT Dt, CustomerName, ItemRelation, SaleCount, 
               DocumentNum, DocumentYear, IsPromo
FROM [Action].dbo. mytab1 WHERE Dt > @data 
2 авг 18, 16:38    [21625489]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить