簡體   English   中英

如何使用SQL存儲過程選擇動態日期

[英]How to select a dynamic date with SQL stored procedure

我創建了一個存儲過程,以便在客戶請求時生成交付日。 根據客戶的區域,它輸出交貨日。

但現在我也想為它添加日期。 所以它不僅輸出了哪一天,而且還輸出了即將到來的那一天當天的日期。

這就是我的存儲過程現在的樣子(customerId是我的IN參數)

BEGIN
SELECT
    CASE customer_zone
    WHEN 1 THEN 'monday'
    WHEN 2 THEN 'tuesday'
    WHEN 3 THEN 'wednesday'
    WHEN 4 THEN 'thursday'
    WHEN 5 THEN 'friday'
    ELSE 'unknown'
    END
FROM customer
WHERE customer_id = customerId;
END

它工作正常,但我真的不知道如何處理日期功能 - 我想我可以使用now()函數並根據相對日添加一些數字?

看起來您的customer_zone是1到5之間的數字。也許您可以簡單地將customer_zone添加到NOW()CURRENT_DATE()以獲取相對日期。 像這樣的東西:

SELECT DATE_ADD(CURRENT_DATE(), INTERVAL customer_zone DAY) AS my_date
FROM customer

未來的第一個星期一永遠

  dateadd(d,datediff(d,'1900-01-01',getdate())/7*7+7,'1900-01-01')

您可以添加(customer_zone - 1)天來獲得customer_zone 1/2/3/4/5的第一個M / T / W / T / F. 根據您的SQL實現,您可能需要now(),today()等,而不是getdate()。

  dateadd(d,datediff(d,'1900-01-01',getdate())/7*7+7+customer_zone-1,'1900-01-01')

如果你用“下周一”谷歌SQL ,你會發現很多有用的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM