У меня есть отчет, который принимает YEAR
как один параметр, и я хотел рассчитать начало и конец финансового года. Вот как я пытаюсь:Рассчитать дату начала и окончания финансового года на основе введенного года SQL Server и SSRS
CREATE PROCEDURE [dbo].[sp_name]
@StartDate as datetime,
@Enddate as datetime,
@year as varchar(10)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
@StartDate = year(dateadd(q, -1, cast(cast(@year AS char) + '/01/' + cast(@year AS char) AS datetime))) = @year
Это правильный способ сделать это?
Мне нужна дата финансового начала с 1 июля 2014 года по 30 июня 2015 года, если год введен как 2015. Пожалуйста, обратите внимание, что это необходимо для внутреннего расчета в сценарии. Если я что-то делаю неправильно, как я могу исправить это, чтобы получить желаемые результаты?
Сторона примечания: вы не должны ** использовать префикс 'sp_' для ваших хранимых процедур. Microsoft [зарезервировала этот префикс для собственного использования (см. * Именование сохраненных процедур *)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx) и вы рискуете столкнуться с именем когда-нибудь в будущем. [Это также плохо для производительности вашей хранимой процедуры] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). Лучше просто просто избегать 'sp_' и использовать что-то еще в качестве префикса - или никакого префикса вообще! –
Также: '@ year' действительно всегда является ** числовым ** значением - так почему вы объявляете этот параметр как' varchar (10) 'then ?? Используйте ** наиболее подходящий тип данных ** - здесь используется «INT». –
Спасибо. Я исправлю все это во время моей реальной реализации. – AskMe