Имя: Пароль:
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ска сама этим рулит
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан