There are additional considerations for using cast.
cast uses the default format for date and time datatypes.
cast generates a domain error when the argument falls outside the range over which the function is defined. This should happen rarely.
You cannot use null/not null keywords to specify the resulting datatype’s nullability. You can, however, use cast with the null value itself to achieve a nulalble result datatype. To convert a value to a nullable datatype, you the convert() function, which does allow the use of null/not null keywords.
You can use cast to convert an image column to binary or varbinary. You are limited to the maximum length of the binary datatypes that is determined by the maximum column size for your server’s logical page size. If you do not specify the length, the converted value has a default length of 30 characters.
You can use unichar expressions as a destination datatype, or they can be converted to another datatype. unichar expressions can be converted either explicitly between any other datatype supported by the server, or implicitly.
If you do not specify length when unichar is used as a destination type, the default length of 30 Unicode values is used. If the length of the destination type is not large enough to accommodate the given expression, an error message appears.