Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa Datediff

[es] :: MS SQL :: Problem sa Datediff

[ Pregleda: 2468 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

CallMeSaMaster

Član broj: 43611
Poruke: 466
*.hermes.si.



+1 Profil

icon Problem sa Datediff12.04.2007. u 15:49 - pre 207 meseci
Ovako:
U jednoj tabeli imam dvije kolone koje su pocetni datum i krajni datum.Obje su DateTime tipa. Sada sam dobio da napravim novi datum koji je Datum iz prve kolone i vrijem druge kolone. Do sada sve normalno. Onda drebam da od tog datuma nadjem DATEDIFF u odnosu na danasnji datum(getDate().PS:Nije bitan redoslijed oduzimanja datuma da vas to ne buni ako ce biti negativan broj). Npisao sam sledece:

Code:
Select Datediff(hour,(convert(varchar,DATUM.START,103)+ ' ' + convert(varchar,DATUM.END,108)),getDate()) FROM DATUM WHERE ID=42

Sad imam problem jer imam novi datum tipa varchar a getDate kao i DATEDIFF koji rade sa DateTime tipom. I naravno dobijem gresku.Shvatam i zbog cega i sve to, ali postoji li neki nacin da se ipak ovo odradi.

Error

Msg 242, Level 16, State 3, Line 2
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.


Ne pitajte me zasto mi treba novi datum koji se generise iz dvije kolone.Tako su mi rekli, iako ja licno smtram da je to najveca glupost koju sam ikada cuo, ali eto...

Mozda ima neko ko moze pomoci

 
Odgovor na temu

zelbi

Član broj: 17006
Poruke: 17
*.vtxnet.net.



Profil

icon Re: Problem sa Datediff12.04.2007. u 16:16 - pre 207 meseci
ako se nevaram, trebao bih samo dodati jos jedan convert :

Code:

Select Datediff(hour, convert(datetime, convert(varchar(10),DATUM.START,103)+ ' ' + convert(varchar(8),DATUM.END,108)), getDate()) FROM DATUM WHERE ID=42
 
Odgovor na temu

CallMeSaMaster

Član broj: 43611
Poruke: 466
89.111.252.*



+1 Profil

icon Re: Problem sa Datediff12.04.2007. u 20:32 - pre 207 meseci
Izvini,ali nikad:-) Mora biti nesto drugo jer sam sve convert kombinacije pokusavo... Ne znam sta da radim
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: Problem sa Datediff12.04.2007. u 20:42 - pre 207 meseci
Jedno mozda banalno pitanje: Posto ti je to novo polje dan iz prve kolone i vreme iz druge kolone, zasto onda za razliku datuma ne koristis samu prvu kolonu umesto sto se mucis sa varchar izvedenom?
 
Odgovor na temu

CallMeSaMaster

Član broj: 43611
Poruke: 466
89.111.252.*



+1 Profil

icon Re: Problem sa Datediff12.04.2007. u 20:53 - pre 207 meseci
Pa i po meni je to logicno.Ali ovi neki debili za koje radim hoce da to tako radim.Ali jednostavno ne funkcionise.A kad ih pitas zasto to tako hocete, kaze lik ne znam ali mora tako. To je nesto najgluplje sto samcuo da se radi, prije svega jer ne vidim smisao toga. Ali ipak me zanima dali i kako se ipak moze odraditi?
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: Problem sa Datediff12.04.2007. u 21:38 - pre 207 meseci
Citat:
CallMeSaMaster:

Msg 242, Level 16, State 3, Line 2
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

Ova ti greska pokazuje da pokusavas da konvertujes string u datum koji nije moguc (npr: 31 februar)
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: Problem sa Datediff12.04.2007. u 22:38 - pre 207 meseci
A evo ti i ono sto ti treba (problem je u CONVERT, tj. u ovakvim primerima koristi CAST):
Code:

SELECT DATEDIFF(dd, CAST(CAST(YEAR(DATUM.START) AS varchar(4)) + '-' + CAST(MONTH(DATUM.START) AS varchar(2)) + '-' + CAST(DAY(DATUM.START) AS varchar(2)) + ' ' + CAST(DATEPART(hh, DATUM.END) AS varchar(2)) + ':' + CAST(DATEPART(mi, DATUM.END) AS varchar(2)) + ':' + CAST(DATEPART(ss, DATUM.END) AS varchar(2)) AS datetime), GETDATE()) AS RazlikaUDanima 
FROM DATUM 
WHERE ID = 42
 
Odgovor na temu

CallMeSaMaster

Član broj: 43611
Poruke: 466
*.hermes.si.



+1 Profil

icon Re: Problem sa Datediff13.04.2007. u 09:08 - pre 207 meseci
Gorane hvala, na odgovoru.Uspio sam bez casta rijesiti samo sto nisam stigo postovat sinoc.Evo kako sam uradio i sad je ok

Code:

Select DateDiff(hour,(convert(datetime,(convert(varchar,DATUM.START,105)+ ' ' + convert(varchar,DATUM.ENDE,108)),105)),getDate()) FROM DATUM WHERE ID=42

 
Odgovor na temu

zelbi

Član broj: 17006
Poruke: 17
*.vtxnet.net.



Profil

icon Re: Problem sa Datediff13.04.2007. u 09:14 - pre 207 meseci
eh da, falio je jos samo dobar format datuma :

convert(datetime, [varchar], 105)

 
Odgovor na temu

podrizvan

Član broj: 134881
Poruke: 467
195.243.151.*



+3 Profil

icon Re: Problem sa Datediff13.04.2007. u 13:29 - pre 207 meseci
Citat:
zelbi: eh da, falio je jos samo dobar format datuma :

convert(datetime, [varchar], 105)

ja i jos malo koda i gotovo.pa mogo sam i ja to reci.hehehe
Fujitsu Nocria 14 prizemlje, 3X 09LLC sprat. Porodicna kuca
135 kv na dva sprata. Izolacija: pod 5cm, zid 16cm, tavan
40cm. Stakla troslojna low-e. Rekuperacija zraka u planu.
Lokacija: Sarajevo
 
Odgovor na temu

[es] :: MS SQL :: Problem sa Datediff

[ Pregleda: 2468 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.