June 14, 2005 at 4:20 am
Hello,
I need to insert a specific date into a datetime field. The date is in a variable (lauthdate). My TSQL syntax is as follows:
UPDATE TM_RENEWALHD
SET AUTH_DATE = convert(datetime,(convert(varchar(8), lauthdate,112)))
lauthdate is has a date in the format of DD/MM/YY. The data type in the database is datetime.
when i run the above is sql query analyser I get the following error:
Server: Msg 241, Level 16, State 1, Line 1
Syntax error converting datetime from character string.
I have used the above to get the current date replacing the lauthdate with GETDATE() and it works fine.
I would apprieciate any assistance.
Thanks
SM
June 14, 2005 at 4:32 am
Hi try changing the settings in the convert statement to 103 which is the British/French date format for input data. (dd/mm/yy
SET AUTH_DATE = convert(datetime,(convert(varchar(8), lauthdate,103)))
HTH Mike
June 14, 2005 at 4:42 am
Hello,
thanks for your post
tried this with no joy.
SET AUTH_DATE = convert(datetime,(convert(varchar, 04/06/05,103)))
June 14, 2005 at 4:54 am
edited to add a missing ) and an example
If the date format of the input is dd/mm/yy use
convert(datetime,@Var,3)
DECLARE @Var varchar(20)
DECLARE @DateVar datetime
set @Var ='21/1/2005'
set @DateVar =convert(datetime,@Var,103) --format dd/mm/yy string
select @Datevar
**********************************
if the date format is dd/mm/yyyy use
convert(datetime,@Var,103)
DECLARE @Var varchar(20)
DECLARE @DateVar datetime
set @Var ='21/1/2005'
set @DateVar =convert(datetime,@Var,103) --format dd/mm/yyyy string
select @Datevar
sorry I was not clear in my original post
Mike
June 14, 2005 at 4:59 am
This should do the job, there were a couple of missing apostrophes and and no length had been declare for the varchar.
SET AUTH_DATE = convert(datetime, (convert(varchar(8), '04/06/05', 103)))
Hope it works.
Ed Phillips
June 14, 2005 at 5:01 am
Sorry, missed above post. Also have a look at Books On Line with regards to the CONVERT function as this contains a good table for date conversion.
Ed Phillips
June 14, 2005 at 5:11 am
Thanks ED I missed the missing ' s and forgot to mention bol.
Mike
June 15, 2005 at 1:44 am
SELECT CONVERT(varchar(8), lauthdate, 112)
No need to convert to datetime T-SQL will do that for you.
Using ISO date format works with DATEFORMAT = MDY, YMD, or DMY
SET DATEFORMAT mdy
GO
DECLARE @datevar datetime
SET @datevar = '20050614'
SELECT @datevar
GO
SET DATEFORMAT ydm
GO
DECLARE @datevar datetime
SET @datevar = '20050614'
SELECT @datevar
GO
SET DATEFORMAT ymd
GO
DECLARE @datevar datetime
SET @datevar = '20050614'
SELECT @datevar
GO
Andy
June 15, 2005 at 2:31 am
Hi,
normally i dont pass in date time value from client.
in fact, i will pass in date time in string format.
for example, if i want dd/mm/yyyy, i will pass in 20/06/2005.
i encountered this issue before due to client's regional setting is different from server.
so, if i pass in dd/mm/yyyy format, i can use CONVERT(DATETIME, @var, 103)
however, some people is passing yyyymmdd to database.
it is up to you.
Leo
June 15, 2005 at 5:03 am
Thanks for all the posts.
I will give it ago.
Viewing 10 posts - 1 through 9 (of 9 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy