From: DavidC on
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
From: Mike on
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(a)lifetimeinc.com> a écrit dans le message de
news:3F00F204-619F-42AE-81AD-4EDBF4A50244(a)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