我有tbl1
个ID
个数字表及其相应的会员日期。
我想创建一个stored procedure
,其中提供了@member_date
参数。我希望该程序获得 @member_date 的月份和年份,以便按月和日期获取所有记录
ID_Number Member_Date
10001 12/1/2015
10002 12/15/2015
10003 10/9/2015
10004 12/13/2014
如下所示:
@member_date = '12/25/2015'
Select * from tbl1 where month(Member_Date)=12 and year(Member_Date)=2015
输出:
ID_Number Member_Date
10001 12/1/2015
10002 12/15/2015
感谢您的帮助 非常感谢
答案 0 :(得分:1)
我仍然没有让你正常,但我认为你想要下面的东西,
CREATE TABLE RYANTABLE (ID_NUMBER INT, MEMBER_DATE DATE)
INSERT INTO RYANTABLE VALUES (10001,'12/1/2015')
INSERT INTO RYANTABLE VALUES (10002,'12/15/2015')
INSERT INTO RYANTABLE VALUES (10003,'10/9/2015')
INSERT INTO RYANTABLE VALUES (10004,'12/13/2014')
您需要如下所示的商店程序吗?
--EXEC RyanProcedure '12/25/2015'
CREATE PROCEDURE RyanProcedure
@member_date DATE
AS
BEGIN
DECLARE @MONTH AS INT=MONTH(@member_date)
DECLARE @Year AS INT=YEAR(@member_date)
SELECT *
FROM RyanTable
WHERE (MONTH(Member_Date) = @MONTH
AND YEAR(Member_Date) = @Year)
OR (Member_Date = @member_date)
END
答案 1 :(得分:0)
你可以使用
SELECT * FROM TBL1 WHERE DATE_FORMAT(Member_Date, '%Y%m') = '201512'
例如
$array = range(1.00, 1.99, 0.01);
var_dump($array);
%Y年,数字,四位数,
%m月,数字(00-12)
对于日期格式,您可以在here
中看到答案 2 :(得分:0)
您应该查询Sargable以获得最佳效果
DECLARE @member_date date= '12/25/2015'
SELECT *
FROM
tbl1
WHERE
Member_Date >= dateadd(month, datediff(month, 0, @member_date), 0)
Member_Date < dateadd(month, datediff(month, -1, @member_date), 0)