CASTing a date

  • Follow


I have the following DECLARE that works fine but I need to handle times when 
the day of a date is not = 1 and @Month passed is less than 10 so the date 
gets '0x' for month or day.  Below is my current CAST.

DECLARE @StartMoth date;
SET @StartMonth = CAST(CAST(@Year as char(4)) + CAST(@Month as char(2)) + 
'01');


Thanks.
-- 
David
0
Reply Utf 8/26/2010 10:09:03 PM

Hi David,

I think it would be easier if you had one parameter of datetime. A datetime 
(or date) could be converted directly to the format that you want with 
convert.

With a single date(time) parameter you could do the following
--- this just to make as if I had a parameter of datetime
declare @myParameter datetime
set @myParameter = getdate()
--- end code for make as if I had a parameter
select convert(varchar, @d, 112) MyDate

the response is
MyDate
--------
20100902

In this example I build a date from integers and then cast it with convert 
to get the format that you want. Note that I used varchars instead of chars 
as you did.

declare @MyDay int = 5
declare @MyMonth int = 9
declare @MyYear int = 10
declare @MyDateStr varchar(10)
declare @MyDate datetime
set @MydateStr = cast(@MyYear as varchar(4)) + '/' + CAST(@MyMonth as 
varchar(2)) + '/' + CAST(@MyDay as varchar(2))
set @MyDate = CONVERT(datetime, @MydateStr, 11)
select convert(varchar, @MyDate, 112) MyDate

Mike
http://www.homemadepride.com

"DavidC" <dlchase@lifetimeinc.com> a écrit dans le message de 
news:3F00F204-619F-42AE-81AD-4EDBF4A50244@microsoft.com...
>I have the following DECLARE that works fine but I need to handle times 
>when
> the day of a date is not = 1 and @Month passed is less than 10 so the date
> gets '0x' for month or day.  Below is my current CAST.
>
> DECLARE @StartMoth date;
> SET @StartMonth = CAST(CAST(@Year as char(4)) + CAST(@Month as char(2)) +
> '01');
>
>
> Thanks.
> -- 
> David 

0
Reply Mike 9/2/2010 8:15:50 PM


1 Replies
223 Views

(page loaded in 0.032 seconds)

Similiar Articles:
















7/24/2012 6:45:27 PM


Reply: