This form data is inserted into the database on submission. On submission to SQL Server the date field is changed to 01/01/1900
This is the concatenated INSERT statement which is generated:
INSERT INTO Applicant (appTitle, appFname, appSname, appDOB, appEmail, appTel, appTelB, appAdd1, appAdd2, appAdd3, appAdd4, appPostcode, appPassword) VALUES ('Mr', 'John', 'Smith', 01/04/78, 'j.smith@.hello.com', '01258 698523', '', '1 The Smithy', 'Old Town', 'Oldville', '', 'OS6 8IU', 'Smith3969')
I have tried wrapping the date in ' ', but this doesn't work either.
Any help would be greatly appreciated
ThanksIt will not work without the quotes. Absent that, you are inserting 1/4 (0.25) /78 (a really small number).
I woulduse parameters instead, which isolates you from the strangeness with handling dates otherwise.|||Thank you for this.
I have almost got it working now using parameters. However I have noticed that dates submitted in the format DD/MM/YYYY or DD/MM/YY are being flipped in SQL Server to the incorrect format MM/DD/YYYY.
This is creating incorrect dates and in some cases is generating the following error:
"Arithmetic overflow error converting expression to data type datetime. The statement has been terminated."
Any ideas?|||Inside SQL Server, the dates (if DateTime type) are binary types, without any formatting applied to them. You can explicitly format the datetime retrieved from SQL Server to a useful representation using DateTime.ToString() (one of the overloads allows a format string that specifies the display format).|||Thats ok, so I can format them correctly in my application.
But what is causing the error:
"Arithmetic overflow error converting expression to data type datetime. The statement has been terminated."
It only occurs on some dates and not on others. This is really confusing me. I may have to resort to storing the dates as text, and then perform any calculations I require by changing them back to dates in my application.
If you have some ideas on this they would be greatfully received.
Thanks
Charlie|||You are likely sending a date to SQL Server (as a string) in a format it does not expect (DD/MM/YYYY rather than MM/DD/YYYY).
Show the code around when the error is occuring. On SQL Server, I would use SQL Profiler and see what is being sent to SQL Server.
No comments:
Post a Comment