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

Откуда:
Сообщений: 45
Здравствуйте! есть таблица t с даннными в столбце

432416009
432416011
432416013
----------

как поменять часть данных мне 16 на 18
9 май 11, 21:06    [10626243]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
step_ks
Member

Откуда:
Сообщений: 936
stuff
9 май 11, 21:10    [10626252]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
Vitek33
Member

Откуда:
Сообщений: 45
step_ks
stuff


а пример можно
9 май 11, 21:19    [10626280]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Vitek33
step_ks
stuff


а пример можно
А в хелпе нету, что ли?
9 май 11, 21:28    [10626311]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
Vitek33
Member

Откуда:
Сообщений: 45
чтот не получается
9 май 11, 21:35    [10626327]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Vitek33
чтот не получается
Ошибка в 13й строке.
9 май 11, 21:47    [10626360]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
kohtpojib
Member

Откуда:
Сообщений: 1
create table #a (a int)

insert into #a values (432416009)
insert into #a values (432416011)
insert into # values (432416013)

update #a
set a=stuff(a,5,2,'18')
where substring(convert(nvarchar(10),a),5,2)=16
10 май 11, 10:44    [10627674]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
Vitek33
Member

Откуда:
Сообщений: 45
kohtpojib,


СПАСИБО за помощь
10 май 11, 15:13    [10629843]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
Vitek33
Member

Откуда:
Сообщений: 45
Можно ли заменить часть даты например
дано 2011-06-23 13:39:00
нужно 2010-05-13 13:39:00
не трогая время?
23 июн 11, 13:43    [10861373]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Vitek33, можно.
23 июн 11, 13:47    [10861421]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
Vitek33
Member

Откуда:
Сообщений: 45
kDnZP
Vitek33, можно.


а как?

update t set dat=(select stuff(dat,1,10,'01-02-2001')) не помагает
23 июн 11, 13:49    [10861453]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Vitek33, DATEADD
23 июн 11, 13:54    [10861500]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Vitek33, либо конвертнуть в строку, разрезать, заменить дату, склеять, конвертнуть в дату, записать.
23 июн 11, 13:55    [10861518]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Vitek33,

у вас дата как строка чтоль?
во первых дату лучше хранить как дату,
во вторых, можете просто переконвертировать строку в дату, и отнять нужное время.
select dateadd( dd, -10, dateadd(mm,-1,convert(datetime,'2011-06-23T13:39:00')) )
23 июн 11, 13:55    [10861523]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
Vitek33
Member

Откуда:
Сообщений: 45
SomewhereSomehow
Vitek33,

у вас дата как строка чтоль?
во первых дату лучше хранить как дату,
во вторых, можете просто переконвертировать строку в дату, и отнять нужное время.
select dateadd( dd, -10, dateadd(mm,-1,convert(datetime,'2011-06-23T13:39:00')) )



как дата smalldatetime
23 июн 11, 13:57    [10861547]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Vitek33,

ну тем лучше, тогда используйте вышеописанные функции для работы с датой! иначе рискуете рано или поздно нарваться на всяческие неприятности связанные с языковыми особенностями. да и серверу не надо будет лишних конвертаций делать.
23 июн 11, 14:00    [10861575]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
Vitek33
Member

Откуда:
Сообщений: 45
SomewhereSomehow
Vitek33,

ну тем лучше, тогда используйте вышеописанные функции для работы с датой! иначе рискуете рано или поздно нарваться на всяческие неприятности связанные с языковыми особенностями. да и серверу не надо будет лишних конвертаций делать.


можно пример
23 июн 11, 14:05    [10861646]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Vitek33, можно - пример.
23 июн 11, 14:08    [10861692]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
s.w.a.n.
Member

Откуда: Москва
Сообщений: 137
Vitek33,
FAQ - тоже не помешает ознакомиться
23 июн 11, 14:13    [10861749]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Vitek33
можно пример

Вам пример чего? Функций работы с датой? Так я ж выше уже написал?
Если пример ошибки, вот так например:
-- это рабоатет
set language english
go
select convert(datetime, stuff('2011-06-23 13:39:00',1,10,'2010-05-13'))
go
-- настройки среды поменяются например, по умолчанию станет руссский язык
-- тот же самый код: уже нет
set language russian
go
select convert(datetime, stuff('2011-06-23 13:39:00',1,10,'2010-05-13'))
23 июн 11, 14:17    [10861799]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
Vitek33
Member

Откуда:
Сообщений: 45
update t set dat=(select convert(smalldatetime, stuff(dat,1,10,'2010-05-13')))
выводит сообщение
Server: Msg 296, Level 16, State 3, Line 1
The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.
The statement has been terminated.
23 июн 11, 14:51    [10862240]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Vitek33,

"о! май! гат!"(с) вы в смысл ответов вникаете?
короче, все что вам надо уже есть в этой ветке, прочитайте еще раз повнимательнее...и сходите по ссылкам в FAQ.
23 июн 11, 14:56    [10862313]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
nezhadnye_my
Guest
declare @t table (dt smalldatetime)

insert @t 
select '2011-06-23T13:39:00'union all select '2011-06-30T13:39:00'

update @t
set dt = DATEADD(MM,-1,dt)
where dt between '20110601' and '20110701'

select * from @t

(2 row(s) affected)
dt
-----------------------
2011-05-23 13:39:00
2011-05-30 13:39:00
23 июн 11, 15:09    [10862444]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
Vitek33
Member

Откуда:
Сообщений: 45
Возможно ли занести в таблицу на sql сервере данные с текстового файла ?

nezhadnye_my,
30 июн 11, 10:47    [10897566]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с update новичку  [new]
-=DiM@n=-
Member

Откуда: Москва
Сообщений: 1564
да, напримир инструкцией BULK INSERT
30 июн 11, 10:49    [10897587]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить