使用月份和年份代码点火器选择日期范围

时间:2016-06-22 12:44:02

标签: php sql database codeigniter

我希望有这个功能,我可以通过输入一个月和当前年份从数据库中选择所有记录

我的数据库日期格式为' YYYY-MM-DD'

例如我选择june for month并输入,它将搜索当前年份的june1-june30。

4 个答案:

答案 0 :(得分:1)

我没有收到明确答案,所以我只是提出了所有的想法,我想出了类似的东西,

"SELECT * FROM attendance WHERE month(DATE) = ".$month." AND year(DATE) = YEAR(now())

其中月份输入是月份中的数字,例如1 - jan, 2 - feb,等。

答案 1 :(得分:0)

您可以尝试为以下

构建查询
select * from thetable where monthname(date_field) = 'February'

或月份(),如果你想返回一个数字

select * from thetable where month(date_field) = 2

答案 2 :(得分:0)

这是我的解决方案。您可以将Year保留为NULL,但是您可以根据需要选择年份。

测试数据

IF OBJECT_ID('tempdb..#TestData') IS NOT NULL DROP TABLE #TestData
GO
CREATE TABLE #TestData (ID int, DateField datetime)
INSERT INTO #TestData (ID, DateField)
VALUES
(1,'2016-01-01')
,(2,'2016-02-02')
,(3,'2016-01-25')
,(4,'2016-02-16')
,(5,'2015-01-12')
,(6,'2015-01-20')

查询

DECLARE @MonthVariable int; SET @MonthVariable = '1'
DECLARE @YearVariable int; SET @YearVariable = '2016'

SELECT
ID
,Datefield
FROM #TestData
WHERE DATEPART(mm,DateField) = @MonthVariable
AND (DATEPART(yy,DateField) = @YearVariable
    OR @YearVariable IS NULL)

输出

ID  Datefield
1   2016-01-01 00:00:00.000
3   2016-01-25 00:00:00.000

如果您总是想要当年,那么您可以这样做;

DECLARE @MonthVariable int; SET @MonthVariable = '1'

SELECT
ID
,Datefield
FROM #TestData
WHERE DATEPART(mm,DateField) = @MonthVariable
AND DATEPART(yy,DateField) = DATEPART(yy,GETDATE())

答案 3 :(得分:0)

SELECT * FROM TABLE WHERE MONTH(date_field) = MonthVariable AND YEAR(date_fied) = YEAR(GETDATE())

GETDATE()返回当前日期和年份 假设发往月份的变量(MonthVariable)包含每月报告的数字