Имя: Пароль:
1C
 
MS SQL Server нулевое смещение дат. Можно ли установить в процессе работы базы?
0 citrus
 
17.05.11
23:46
При развертывании SQL базы не было указано смещение дат. Сейчас в процессе работы иногда возникают из-за этого ошибки.

вопрос:  можно ли в консоли сервера 1С установить смещение дат уже на рабочей базе?
1 Rodger
 
18.05.11
00:13
(0) делай выгрузку и загрузку базы
2 Господин ПЖ
 
18.05.11
00:15
лечится выгрузкой/загрузкой с лазеньем в таблицу _YearOffSet между действиями
3 citrus
 
18.05.11
00:16
выгрузкой походу не отделаться.
надо новую базу в кластере созадавать
4 Господин ПЖ
 
18.05.11
00:17
еще как вариант

Declare TablesAndFields cursor for
SELECT objects.name as Tablename, columns.name as columnname
FROM
   dbo.sysobjects as objects
left join dbo.syscolumns as columns
on objects.id = columns.id
where objects.xtype = 'U'
and columns.xtype = 61

open TablesAndFields

Declare @TableName as varchar(100)
Declare @ColumnName as varchar(100)

FETCH NEXT FROM TablesAndFields
   into @TableName, @ColumnName

WHILE @@FETCH_STATUS = 0
BEGIN
   Exec ('update ' + @TableName + '
   set ' + @ColumnName + ' = dateAdd(year,-2000,'+@ColumnName+')
   where ' + @ColumnName + ' > ''3999-12-31 23:59:59''')

  -- This is executed as long as the previous fetch succeeds.
  FETCH NEXT FROM TablesAndFields
   into @TableName, @ColumnName
END

close TablesAndFields
deallocate TablesAndFields
update dbo._YearOffset set Offset=0
5 citrus
 
18.05.11
00:18
как сложно
6 Fragster
 
гуру
18.05.11
00:31
(4) наоборот, надо прибавлять 2к, а не убавлять, ибо это скуль не знает дат до 1753 года, а не 1с
7 Господин ПЖ
 
18.05.11
00:37
(6) мопед не мой... по сути ты прав конечно
8 Господин ПЖ
 
18.05.11
00:40
подожди, почему прибавлять? скуль не знает и при (0) ставит дату +2000 лет.
9 Fragster
 
гуру
18.05.11
07:29
(8) не, скуль не знает и отказывается записывать, из-за этого АО из файловых баз, где криворукие юзеры навбивали 211 год не загружается. а если смещение дат 2000, то все даты в скуль пишутся на 2000 лет вперед и все прокатывате, так как вместо 211 пишется 2211, вместо 2011, 4011 год, 1ска сама этим рулит
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн