Solved

Arithmetic overflow error converting expression to data type smalldatetime!!!

Posted on 2006-06-12
2
1,950 Views
Last Modified: 2012-06-22
Hi! i have a table that has a column with dates that where stored in a decimal type field! ... i've converted that columnn to nvarchar(50) and then parsed the the dates from '20040225' to
'2004-02-25' . That went ok. (the dates with the '20040225' where in a decimal type field...go figure!) ... but now ... after parsing the dates to the '2004-02-25' format, when i try to change the column from nvarchar(50) to smalldatetime i get the error: Arithmetic overflow error converting expression to data type smalldatetime.

I know this has something to do with some wrong date around somewhere. How can i find the wrong dates in my table? is there a query to do it? i know there is! ... please help!
0
Comment
Question by:xjpmauricio
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 143

Accepted Solution

by:
Guy Hengel [angelIII / a3] earned 500 total points
ID: 16883864
you should create a additional column (with datetime), and update it:

update yourtable
  set new_field=  convert(datetime, yourfield, 120)

if that gives the same error, you need to identify the rows.
I would load the field into a test table:

create table test_date_values ( id int, year_value varchar(4), month_value varchar(2), day_value varchar(2))
insert into test_date_values select id, substring(yourfield, 1,4), substring(yourfield, 6,2), substring(yourfield, 9,2) from yourtable

and how, check the validity of the dates...
0
 
LVL 1

Author Comment

by:xjpmauricio
ID: 16883918
--FIND INVALID DATES

create table test_date_values ( id int, year_value varchar(4), month_value varchar(2), day_value varchar(2))
insert into test_date_values select id,
substring(DATA_SITUACAO, 1,4), substring(DATA_SITUACAO, 6,2), substring(DATA_SITUACAO, 9,2) from FARQ_007D

select * from test_date_values where month_value  > 31

...the solution whas so simple that i think i'm such a dum bustard!!! god!....

thanks a lot!...
0

Featured Post

Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
The Delta outage: 650 cancelled flights, more than 1200 delayed flights, thousands of frustrated customers, tens of millions of dollars in damages – plus untold reputational damage to one of the world’s most trusted airlines. All due to a catastroph…
Via a live example, show how to extract insert data into a SQL Server database table using the Import/Export option and Bulk Insert.
This videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question