[英]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.