SQL 服务器 2008
SQL Server 2008
对不起我的英语...
我有一个 table 列
project, month, year
abc 2 2017
xyz 5 2017
abc 3 2017
abc 5 2017
abc 1 2018
如何搜索项目 abc 月 = 2 年 = 2017 直到 月 = 1 年 = 2018
据我所知,SQL Server 2008 不能使用 concat 函数
试试这个:
Select *
From YourTable
Where DATETIMEFROMPARTS(year, month, 1, 1, 1, 1, 1)
between '2017-02-01' And '2018-01-01'
使用数学比较:
SELECT * FROM table1
WHERE (year * 12 + month) BETWEEN (2017 * 12 + 1) AND (2018 * 12 + 1)
我已编辑代码以说明月份中的前导零。
Declare @temp Table
(
project varchar(50),
month int,
year int
);
Insert Into @temp
(project, month, year)
Values ('abc', 2, 2017)
Insert Into @temp
(project, month, year)
Values ('xyz', 5, 2017)
Insert Into @temp
(project, month, year)
Values ('abc', 3, 2017)
Insert Into @temp
(project, month, year)
Values ('abc', 5, 2017)
Insert Into @temp
(project, month, year)
Values ('abc', 1, 2018)
Insert Into @temp
(project, month, year)
Values ('xxx', 5, 2010)
Insert Into @temp
(project, month, year)
Values ('xxx', 12, 2018)
Declare @FromYear int = 2010;
Declare @FromMonth int = 04;
Declare @ToYear int = 2018;
Declare @ToMonth int = 05;
Select *
From @temp
Where Convert(varchar, year) + right('00' + Convert(varchar, month), 2) Between '201004' and '201805'
How can I search project abc with month = 2 year = 2017 until month = 1 year = 2018
您可以使用
SELECT *
FROM T
WHERE (([Year] * 10) + [Month]) BETWEEN 20172 AND 20181
AND
project = 'abc';
对不起我的英语...
我有一个 table 列
project, month, year
abc 2 2017
xyz 5 2017
abc 3 2017
abc 5 2017
abc 1 2018
如何搜索项目 abc 月 = 2 年 = 2017 直到 月 = 1 年 = 2018
据我所知,SQL Server 2008 不能使用 concat 函数
试试这个:
Select *
From YourTable
Where DATETIMEFROMPARTS(year, month, 1, 1, 1, 1, 1)
between '2017-02-01' And '2018-01-01'
使用数学比较:
SELECT * FROM table1
WHERE (year * 12 + month) BETWEEN (2017 * 12 + 1) AND (2018 * 12 + 1)
我已编辑代码以说明月份中的前导零。
Declare @temp Table
(
project varchar(50),
month int,
year int
);
Insert Into @temp
(project, month, year)
Values ('abc', 2, 2017)
Insert Into @temp
(project, month, year)
Values ('xyz', 5, 2017)
Insert Into @temp
(project, month, year)
Values ('abc', 3, 2017)
Insert Into @temp
(project, month, year)
Values ('abc', 5, 2017)
Insert Into @temp
(project, month, year)
Values ('abc', 1, 2018)
Insert Into @temp
(project, month, year)
Values ('xxx', 5, 2010)
Insert Into @temp
(project, month, year)
Values ('xxx', 12, 2018)
Declare @FromYear int = 2010;
Declare @FromMonth int = 04;
Declare @ToYear int = 2018;
Declare @ToMonth int = 05;
Select *
From @temp
Where Convert(varchar, year) + right('00' + Convert(varchar, month), 2) Between '201004' and '201805'
How can I search project abc with month = 2 year = 2017 until month = 1 year = 2018
您可以使用
SELECT *
FROM T
WHERE (([Year] * 10) + [Month]) BETWEEN 20172 AND 20181
AND
project = 'abc';