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

Откуда: Путинград
Сообщений: 114
Доброго дня!

Помогите, пожалуйста разрешить следующую проблему. Перешел с SQL 2000 на 2008. Переделал парсер текстова лога АТС на SSIS. Даты импортировались в разнобой:
все что были до 12 числа любого месяца - в американском формате, остальные в русском. Локаль сервера заточена на США, ОС на Россию. Видимо трабла в том что дата и время входят в формате "01/02/2011 05:20PM"? Или я ошибаюсь?

Побчный вопрос - стоит ли сменить локализацию SQL на Россию или это приведет к краху хранящихся данных (то что adp файл и соответствующие хранимки надо будет переделать - понимаю)?

И подскажите пожалуйста самый безболезненный способ конвериторвать уже накосяченные даты.

Заранее спс!
26 июл 11, 16:35    [11029479]     Ответить | Цитировать Сообщить модератору
 Re: Форматы дат, региональные настройки и SSIS  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
seath
И подскажите пожалуйста самый безболезненный способ конвериторвать уже накосяченные даты.

если в таблице только данные, залитые таким гибридным способом, то:
create table #t(dt datetime)
insert into #t
values ('20050512'), ('20051205'), ('20050706'), ('20050822')

select 
	dt dt_corrupted,
	case 
		when DATEPART(mm, dt) <= 12 and DATEPART(dd, dt) <= 12 
			then CONVERT(datetime, CONVERT(nvarchar(100), dt, 110), 104) 
		else dt
	end dt_correct
from #t
order by dt

drop table #t

проверьте результат на вашей таблице, переделайте в update и всё
если есть и ранее залитые, но в наличии признак, по которому можно их отсечь, то добавьте условие
если же отсечь ранее залитые данные от кривых не получается, то они уже перемешались и ничего не поделать
26 июл 11, 17:01    [11029688]     Ответить | Цитировать Сообщить модератору
 Re: Форматы дат, региональные настройки и SSIS  [new]
Glory
Member

Откуда:
Сообщений: 104751
seath
Переделал парсер текстова лога АТС на SSIS.

На чем написан ваш парсер ?
26 июл 11, 17:03    [11029708]     Ответить | Цитировать Сообщить модератору
 Re: Форматы дат, региональные настройки и SSIS  [new]
seath
Member

Откуда: Путинград
Сообщений: 114
Glory
seath
Переделал парсер текстова лога АТС на SSIS.

На чем написан ваш парсер ?


Flat File Source -> Derived column (команда "(DT_DBTIMESTAMP)(Registred)") -> Data conversion (как раз строка в "DT_DBTIMESTAMP") -> SQL Server Destination

до файла два скрипт-таска на C#, но там чисто мехника - скопировать файл, да слить в архив строки из него с проверкой на значимость этих строк (всякий мусор служебный отсеиваю)
26 июл 11, 17:27    [11029906]     Ответить | Цитировать Сообщить модератору
 Re: Форматы дат, региональные настройки и SSIS  [new]
seath
Member

Откуда: Путинград
Сообщений: 114
Shakill
проверьте результат на вашей таблице, переделайте в update и всё
если есть и ранее залитые, но в наличии признак, по которому можно их отсечь, то добавьте условие
если же отсечь ранее залитые данные от кривых не получается, то они уже перемешались и ничего не поделать


большое спасибо!
26 июл 11, 17:28    [11029913]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить