Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations biv343 on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Syntax error

Status
Not open for further replies.

AFK

Programmer
Oct 5, 2004
23
US
I have a sql query that looks like



Select t4.Company,
t1.Order# ,
t1.CREATEDATE ,
(Convert(varchar20),t1.SHIPDATE ,20 )),
Convert(varchar(8),t1.REQUIREDATE ,1) + ' ' + Convert(varchar(8),t1.REQUIREDTIME ,108),
(Convert(varchar(20),t3.DELIVERYDATE,20)),
DATEDIFF( hh , (Convert(varchar(20),t3.DELIVERYDATE,20)) ,(Convert(varchar(8),t1.REQUIREDATE,1) + ' ' + Convert(varchar(8),t1.REQUIREDTIME,108))'Time'
from T1 t1,
T2 t2,
T3 t3,
T4 t4
Where T1.Field1= T2.Field1
and T1.Field1= T3.Field1
T1.Field2 = T4.Field2
And t1.SHIPDATE < = '10/15/04'
Order By t1.SHIPDATE


when I run this I get an error message that says

Server: Msg 241, Level 16, State 1, Line 1
Syntax error converting datetime from character string.

Can someone help me on why am I getting this error message. I think I am converting all dates.
 
You have tons of problems with this. First you need to learn to count your opening and closing parentheses.

You also need and between every phrase in the where clause. Personally, I recommend you learn how to use the join syntax as well. And, out of pure curiosity, why are you aliasing when the alias and the table name are the same?

Questions about posting. See faq183-874
 
Here is my brackets

Select t4.Company,
t1.Order# ,
t1.CREATEDATE ,
(Convert varchar(20),t1.SHIPDATE ,20 )),
(Convert(varchar(8),t1.REQUIREDATE ,1)) + ' ' + (Convert(varchar(8),t1.REQUIREDTIME ,108))),
(Convert(varchar(20),t3.DELIVERYDATE,20)),
DATEDIFF( hh , (Convert(varchar(20),t3.DELIVERYDATE,20)) ,(Convert(varchar(8),t1.REQUIREDATE ,1)) + ' ' + (Convert(varchar(8),t1.REQUIREDTIME ,108)))'Time'
from T1 t1,
T2 t2,
T3 t3,
T4 t4
Where t1.Field1= t2.Field1
and t1.Field1= t3.Field1
and t1.Field2 = t4.Field2
And t1.SHIPDATE < = '10/15/04'
Order By t1.SHIPDATE


To clear your curiosity, it was my typing mistakes.
 
Still has parentheses problems.
Try:
Code:
Select  t4.Company,
    t1.Order# ,
    t1.CREATEDATE , 
    Convert (varchar(20),t1.SHIPDATE  ,20 ),
    Convert(varchar(8),t1.REQUIREDATE ,1) + ' ' +  Convert(varchar(8),t1.REQUIREDTIME ,108),
    Convert(varchar(20),t3.DELIVERYDATE,20),
    DATEDIFF(hh , Convert(varchar(20),t3.DELIVERYDATE,20),
	Convert(varchar(8),t1.REQUIREDATE,1) 
+ ' ' +  Convert(varchar(8),t1.REQUIREDTIME,108)) as 'Time'
from    T1 t1 join T2 t2 on  T1.Field1= T2.Field1
        join T3 t3 on T1.Field1= T3.Field1
        join T4  t4 on T1.Field2 = T4.Field2
Where   t1.SHIPDATE  < = '10/15/04'
    Order By t1.SHIPDATE

Questions about posting. See faq183-874
 
I agree with SQLSister, why are you using table alias' when they are the same as the tablename?

example:
T1 t1

If you are just providing a 'fake' tablename, it would have been better to do:

table1 t1

-SQLBill
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top