Thanks Peter, I thought about using CASE but just wondered if there was a cleaner technique. Code side most date functions accept dateparts as strings, just seems wierd that T-SQL doesn't :(USE fbisMasterDevDECLARE @SubType smallintDECLARE @SubID bigintDECLARE @Roles varchar(50)DECLARE @UserRoles varchar(50)/* This need to be parameters */DECLARE @UserID bigintDECLARE @StartDate DateTimeDECLARE @PeriodLetter varchar(4)DECLARE @Period smallintSET @UserID = 1SET @StartDate = '01/01/2006'SET @PeriodLetter = 'm'/* Get values we need from subscriptions */SELECT @SubType = SubscriptionType, @SubID = UniqueID, @Roles = Roles, @Period = RecurringPeriodFROM SubscriptionsWHERE (UniqueID = 1);/* Add record to user_Subscriptions */INSERT INTO User_Subscriptions( UserID, SubscriptionID, DateAdded, Expires, SubscriptionType, Active)VALUES( @UserID, @SubID, @StartDate, dateadd(@PeriodLetter,@Period,@StartDate), @SubType, 1);