T-SQL dateadd - format daty

0

Witam, bazuje na T-SQL
Mam w bazie pole DATA_X typu varchar(10) i zapisuje do niego np: '2010-01-31'
chce w zapytaniu edytowac jego wartosc dodajac np 3 dni wiec uzywam polecenia:

UPDATE TABELA SET DATA_X = dateadd(day,3,DATA_X) i dostaje rezultat feb 03 203 czy cos takiego, jak zrobic by otrzymac normalny dla mnie format 'yyyy-mm-dd'

pozdrawiam

0

UPDATE TABELA SET DATA_X = convert(varchar(10),dateadd(day,3,DATA_X),20) i juz wszystko dziala pieknie, a jest jakis inny sposob? na taki sam efekt?

0

dateadd zwraca pole typu datetime, stąd też aby uzyskać datę w żądanym formacie trzeba ją skonwertować. Istnieją inne sposoby na uzyskanie takiego efektu np. na poziomie zmiany języka sesji lub przez ustawienie DATEFORMAT. Więcej na ten temat możesz przeczytać w artykule Pawła Potasińskiego: http://www.microsoft.com/poland/technet/article/art0053_01.mspx

0

a mam inne jeszcze pytanie ale nie bede zakladal nowego watku...
mam pole typu text i w update robie:

uptade tabela set pole_text = cast(pole_text as varchar) + 'zmienna string'

i jesli do tej pory pole_txt było = null to wartosc pole_text po update tez jest null, co zrobic by jednak dopisalo stringa?

0
rem napisał(a)

a mam inne jeszcze pytanie ale nie bede zakladal nowego watku...
mam pole typu text i w update robie:

uptade tabela set pole_text = cast(pole_text as varchar) + 'zmienna string'

i jesli do tej pory pole_txt było = null to wartosc pole_text po update tez jest null, co zrobic by jednak dopisalo stringa?

ok juz do tego doszedlem wiec sie podziele:

uptade tabela set pole_text = case when pole_text is null then cast(pole_text as varchar) + 'zmienna string' else 'zmienna string'

0

no nie do konca tak :)
update powinno sie dokonywac za pomoca TEXTPTR
(to co napisales zadziala dla krotkich stringow ponizej extenda)

<url>http://msdn.microsoft.com/en-us/library/ms189466.aspx<url></url></url>

1 użytkowników online, w tym zalogowanych: 0, gości: 1