Установка даты в хранимой процедуре - PullRequest
0 голосов
/ 30 октября 2019

У меня есть хранимая процедура, которая ищет заказы в течение определенного периода. Как установить дату в хранимой процедуре? Вот мой код. Спасибо !!

Я написал запрос. Просто нужно установить текущую дату.

USE [TMWSUITE]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE Proc [dbo].[DawgAlert_Completed_Order_Status] 
AS
SELECT
  orderheader.ord_number
  ,orderheader.ord_billto
  ,orderheader.ord_status
  ,orderheader.ord_origin_earliestdate
  ,orderheader.ord_origin_latestdate
  ,orderheader.ord_dest_earliestdate
  ,orderheader.ord_dest_latestdate
  ,orderheader.ord_trailer
  ,orderheader.ord_totalmiles
  ,stops.stp_city
  ,stops.stp_state
  ,stops.stp_schdtearliest
  ,stops.stp_schdtlatest
  ,stops.stp_status
  ,stops.stp_number
  ,stops.stp_sequence
  ,stops.stp_arrivaldate
  ,stops.stp_departuredate
  ,stops.cmd_code
  ,stops.cmp_name
  ,orderheader.ord_refnum
  ,orderheader.ord_description
  ,trailerprofile.trl_number
  ,trailerprofile.trl_type3
  ,city.cty_nmstct
  ,orderheader.ord_completiondate
FROM
  orderheader
  INNER JOIN stops
    ON orderheader.ord_hdrnumber = stops.ord_hdrnumber
  LEFT OUTER JOIN company
    ON orderheader.ord_company = company.cmp_id
  INNER JOIN trailerprofile
    ON orderheader.ord_trailer = trailerprofile.trl_number
  INNER JOIN city
    ON stops.stp_city = city.cty_code
WHERE
  stops.stp_departure_status = 'DNE' AND orderheader.ord_status='CMP' AND (orderheader.ord_completiondate >= @LoadDate) AND (orderheader.ord_completiondate <= @EndDate) AND (orderheader.ord_billto = @billto)

Я бы хотел, чтобы хранимая процедура запускалась и извлекала данные, которые находятся в определенном диапазоне дат. Так что, если я установлю текущую дату в запросе. Он получит данные за предыдущий или тот же день. Я могу сделать это в любом случае.

1 Ответ

0 голосов
/ 30 октября 2019

Предполагая, что SQL Server, вы можете получить текущую дату, используя функцию GETDATE(). Если вы хотите, чтобы это была дата, а не текущая дата и время, вы бы использовали CAST(GETDATE() AS DATE). Итак, объявите переменную и установите ее:

DECLARE @current_date DATETIME
SET @current_date = CAST(GETDATE() AS DATE)
...