PRB: CONVERTing Character to an Integer Causes Syntax Error (47180)



The information in this article applies to:

  • Microsoft SQL Server 4.2x
  • Microsoft SQL Server 6.0
  • Microsoft SQL Server 6.5
  • Microsoft SQL Server 7.0

This article was previously published under Q47180

SYMPTOMS

According to the "Microsoft SQL Server Language Reference" and Books Online, you can convert from a character to an integer. However, the following statement,
   select convert(int,'A')
				

causes an error similar to the following:
Msg 249, Level 16, State 1
Syntax error converting CHAR value 'A' to an INT4 field

CAUSE

A convert() from a char to an integer can only be done if it "makes sense." For example, you can convert the character "1" (one) to an integer, but you cannot convert the letter "A". For example
   select convert(int,'1')
				

returns 1 as expected.

WORKAROUND

To return the ASCII numerical representation of a letter, use the ascii() function. For example
   select ascii('A')
				

returns 65.

Modification Type:MinorLast Reviewed:3/14/2005
Keywords:kbother KB47180