![](/img/trans.png)
[英]SQL how to select dates between 2 date parameters as columns in a stored procedure
[英]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.