Имеем проблему разных дат в базах 1с.
То есть если при установке базы данных установили смещение дат 2000, то в скуле все записи дат будут с 4000 года, что вызывает небольшой дискомфорт при обмене данными средствами sql.
Для исправления этого недоразумения был найден этот скриптик, в принципе идея в голове летала, вот только время на реализацию все не было.
Так что спасибо
Волшебному форуму, а именно пользователю
Господин ПЖ
use rl_distrib;
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 + ' > ''3000-12-31T23: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
No comments:
Post a Comment