dbTalk Databases Forums  

Problem using CAST with Zeroed out Field Values

comp.databases.ms-sqlserver comp.databases.ms-sqlserver


Discuss Problem using CAST with Zeroed out Field Values in the comp.databases.ms-sqlserver forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
robboll
 
Posts: n/a

Default Problem using CAST with Zeroed out Field Values - 05-03-2005 , 09:40 AM






Hello --
I have a field with date values like: 20050714. When using SQL Server
to convert it to a Date in a View, I use the following:
CAST(MyDate as DateTime)

That works great. The problem is that some rows have the value:
00000000

When it hits one of these, I get a SQL Server Enterprise Manager Error:

Database Server: Microsoft SQL Server
Version: 08.00.0760
Runtime Error: [Microsoft][ODBC SQL Server Driver][SQL Server]The
conversion of a char data type to a datetime data type resulted in an
out-of-range datetime value.

Is there a workaround for this? Any assistance greatly appreciated.

RBollinger


Reply With Quote
  #2  
Old   
--CELKO--
 
Posts: n/a

Default Re: Problem using CAST with Zeroed out Field Values - 05-03-2005 , 12:14 PM






1) Quit storing dates as strings and numbers. This is the REAL answer.
And kill the guy who did this so he will not screw up the rest of the
database.

2) You did not give us specs; did you want the non-existent date
0000-00-00 to be a NULL or what? The error is exactly right ad shows
that your design has some serious problems. .

CAST (CASE @my_string_date
WHEN '00000000'
THEN NULL -- or dummy value
ELSE @my_string_date END AS DATETIME)

A better would be to do an update on the column, get rid of the
mythical dates and then replace that column with a temporal one after
validating the existing dates with a procedure. Don't just mop the
floor; fix the leak!


Reply With Quote
  #3  
Old   
Erland Sommarskog
 
Posts: n/a

Default Re: Problem using CAST with Zeroed out Field Values - 05-03-2005 , 04:48 PM



robboll (robboll (AT) hotmail (DOT) com) writes:
Quote:
I have a field with date values like: 20050714. When using SQL Server
to convert it to a Date in a View, I use the following:
CAST(MyDate as DateTime)

That works great. The problem is that some rows have the value:
00000000

When it hits one of these, I get a SQL Server Enterprise Manager Error:

Database Server: Microsoft SQL Server
Version: 08.00.0760
Runtime Error: [Microsoft][ODBC SQL Server Driver][SQL Server]The
conversion of a char data type to a datetime data type resulted in an
out-of-range datetime value.

Is there a workaround for this? Any assistance greatly appreciated.
You can use the isdate() function to check whether a string is a
legal date value or not.


--
Erland Sommarskog, SQL Server MVP, esquel (AT) sommarskog (DOT) se

Books Online for SQL Server SP3 at
http://www.microsoft.com/sql/techinf...2000/books.asp


Reply With Quote
  #4  
Old   
robboll
 
Posts: n/a

Default Re: Problem using CAST with Zeroed out Field Values - 05-05-2005 , 04:51 PM



Combining your answer with the second guys answer, I think I will try
something like:

CAST(CASE@my_string_date
WHEN isdate(my_string_date) = True
THEN NULL
ELSE @my_string_date END AS DATETIME)

Thanks for your help!
RBollinger


Reply With Quote
  #5  
Old   
--CELKO--
 
Posts: n/a

Default Re: Problem using CAST with Zeroed out Field Values - 05-06-2005 , 09:23 AM



"isdate(my_string_date) = TRUE " is wrong; there is no Boolean datatype
or constants in SQL. You need a numeric value Did you fix the leak?


Reply With Quote
  #6  
Old   
robboll
 
Posts: n/a

Default Re: Problem using CAST with Zeroed out Field Values - 05-06-2005 , 08:21 PM




--CELKO-- wrote:
Quote:
"isdate(my_string_date) = TRUE " is wrong; there is no Boolean
datatype
or constants in SQL. You need a numeric value Did you fix the leak?
Yes I did "fix the leak". I ended up removing all invalid date values
as part of the append process -- the recommended solution.

Thanks.



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.