10 个解决方案
#1
這樣不知行不行啊,不行就當我沒說,我也沒試過
select * from tabel1 where date like "2005年5月"
select * from tabel1 where date like "2005年5月"
#2
或者這樣也行
select * from tabel1 where date>='2005年5月1日‘ and date < ="2005年5月30日’
select * from tabel1 where date>='2005年5月1日‘ and date < ="2005年5月30日’
#3
什么数据库?
这个字段定义的是日期格式吗?
这个字段定义的是日期格式吗?
#4
如果这个字段是字串
SELECT * FROM TableName WHERE FieldName Like '2005年5月%'
如果是日期型
SELECT * FROM TableName WHERE (FieldName >='2005年5月1日') AND (FieldName >='2005年5月30日')
SELECT * FROM TableName WHERE FieldName Like '2005年5月%'
如果是日期型
SELECT * FROM TableName WHERE (FieldName >='2005年5月1日') AND (FieldName >='2005年5月30日')
#5
BETWEEN
指定测试范围。
语法
test_expression [ NOT ] BETWEEN begin_expression AND end_expression
参数
test_expression
是用来在由 begin_expression 和 end_expression 定义的范围内进行测试的表达式。test_expression 必须与 begin_expression 和 end_expression 具有相同的数据类型。
NOT
指定谓词的结果被取反。
begin_expression
是任何有效的 Microsoft® SQL Server™ 表达式。begin_expression 必须与 test_expression 和 end_expression 具有相同的数据类型。
end_expression
是任何有效的 SQL Server 表达式。end_expression 必须与 test_expression 和 begin_expression 一样具有相同的数据类型。
AND
作为一个占位符,表示 test_expression 应该处于由 begin_expression 和 end_expression 指定的范围内。
结果类型
Boolean
结果值
如果 test_expression 的值大于或等于 begin_expression 的值并且小于或等于 end_expression 的值,则 BETWEEN 返回 TRUE。
如果 test_expression 的值小于 begin_expression 的值或者大于 end_expression 的值,则 NOT BETWEEN 返回 TRUE。
注释
若要指定排除范围,请使用大于 (>) 和小于 (<) 运算符。如果任何 BETWEEN 或 NOT BETWEEN 谓词的输入为 NULL,则结果是 UNKNOWN。
示例
A. 使用 BETWEEN
本例返回书的题头标识符,这些书的年度至今单位销售额是从 4,095 到 12,000。
USE pubs
GO
SELECT title_id, ytd_sales
FROM titles
WHERE ytd_sales BETWEEN 4095 AND 12000
GO
下面是结果集:
title_id ytd_sales
-------- -----------
BU1032 4095
BU7832 4095
PC1035 8780
PC8888 4095
TC7777 4095
(5 row(s) affected)
B. 使用 > 和 < 代替 BETWEEN
本例使用大于 (>) 和小于 (<) 运算符,由于这些运算符是非包含的,所以返回不同的结果。
USE pubs
GO
SELECT title_id, ytd_sales
FROM titles
WHERE ytd_sales > 4095 AND ytd_sales < 12000
GO
下面是结果集:
title_id ytd_sales
-------- -----------
PC1035 8780
(1 row(s) affected)
C. 使用 NOT BETWEEN
本例找出一个指定范围(从 4,095 到 12,000)外的所有行。
USE pubs
GO
SELECT title_id, ytd_sales
FROM titles
WHERE ytd_sales NOT BETWEEN 4095 AND 12000
GO
下面是结果集:
title_id ytd_sales
-------- -----------
BU1111 3876
BU2075 18722
MC2222 2032
MC3021 22246
PS1372 375
PS2091 2045
PS2106 111
PS3333 4072
PS7777 3336
TC3218 375
TC4203 15096
(11 row(s) affected)
请参见
>(大于)
<(小于)
表达式
函数
运算符(逻辑运算符)
SELECT(子查询)
WHERE
指定测试范围。
语法
test_expression [ NOT ] BETWEEN begin_expression AND end_expression
参数
test_expression
是用来在由 begin_expression 和 end_expression 定义的范围内进行测试的表达式。test_expression 必须与 begin_expression 和 end_expression 具有相同的数据类型。
NOT
指定谓词的结果被取反。
begin_expression
是任何有效的 Microsoft® SQL Server™ 表达式。begin_expression 必须与 test_expression 和 end_expression 具有相同的数据类型。
end_expression
是任何有效的 SQL Server 表达式。end_expression 必须与 test_expression 和 begin_expression 一样具有相同的数据类型。
AND
作为一个占位符,表示 test_expression 应该处于由 begin_expression 和 end_expression 指定的范围内。
结果类型
Boolean
结果值
如果 test_expression 的值大于或等于 begin_expression 的值并且小于或等于 end_expression 的值,则 BETWEEN 返回 TRUE。
如果 test_expression 的值小于 begin_expression 的值或者大于 end_expression 的值,则 NOT BETWEEN 返回 TRUE。
注释
若要指定排除范围,请使用大于 (>) 和小于 (<) 运算符。如果任何 BETWEEN 或 NOT BETWEEN 谓词的输入为 NULL,则结果是 UNKNOWN。
示例
A. 使用 BETWEEN
本例返回书的题头标识符,这些书的年度至今单位销售额是从 4,095 到 12,000。
USE pubs
GO
SELECT title_id, ytd_sales
FROM titles
WHERE ytd_sales BETWEEN 4095 AND 12000
GO
下面是结果集:
title_id ytd_sales
-------- -----------
BU1032 4095
BU7832 4095
PC1035 8780
PC8888 4095
TC7777 4095
(5 row(s) affected)
B. 使用 > 和 < 代替 BETWEEN
本例使用大于 (>) 和小于 (<) 运算符,由于这些运算符是非包含的,所以返回不同的结果。
USE pubs
GO
SELECT title_id, ytd_sales
FROM titles
WHERE ytd_sales > 4095 AND ytd_sales < 12000
GO
下面是结果集:
title_id ytd_sales
-------- -----------
PC1035 8780
(1 row(s) affected)
C. 使用 NOT BETWEEN
本例找出一个指定范围(从 4,095 到 12,000)外的所有行。
USE pubs
GO
SELECT title_id, ytd_sales
FROM titles
WHERE ytd_sales NOT BETWEEN 4095 AND 12000
GO
下面是结果集:
title_id ytd_sales
-------- -----------
BU1111 3876
BU2075 18722
MC2222 2032
MC3021 22246
PS1372 375
PS2091 2045
PS2106 111
PS3333 4072
PS7777 3336
TC3218 375
TC4203 15096
(11 row(s) affected)
请参见
>(大于)
<(小于)
表达式
函数
运算符(逻辑运算符)
SELECT(子查询)
WHERE
#6
没有和大家说楚,我要做的是一个数据库查询的程序,因为要打印每个月的客户报表,所以是要选择打印某年某月的报表,2005年5月只是我举的一个例子,所以只是一个变量,所以并不能按照楼上select语句那样写啊??而且日起从数据库里调出来的日期也是以变量的形式显示的阿?所以一直不知道用什么方法实现?怎样才能查找出来?希望各位大人在帮帮我啊!非常感谢!
#7
可以定義兩個變量
begindate 和enddate
那麼你可以通過這兩個變量把日期帶入到查詢條件裡面最,
不管是文本框輸入還是選擇都可以啦
begindate 和enddate
那麼你可以通過這兩個變量把日期帶入到查詢條件裡面最,
不管是文本框輸入還是選擇都可以啦
#8
Private Sub Command6_Click()
'2005年5月
Dim mdate As Date
Dim monthS, monthE As Date
Dim strMS, strME As String
Dim strSQl As String
mdate = "2005年5月3日"
monthS = mdate
strMS = CStr(Format(monthS, "yyyy-mm-dd"))
strMS = Mid(strMS, 1, Len(strMS) - 2) & "01"
monthS = CDate(strMS) '本月开始
monthE = DateAdd("m", 1, mdate)
strME = CStr(Format(monthE, "yyyy-mm-dd"))
strME = Mid(strME, 1, Len(strMS) - 2) & "01"
monthE = CDate(strME) '下个月开始
strSQl = "select * form table where dateField between '" & monthS & "' and '" & monthE & "'"
'运行查询语句就行了。
Print monthS
Print monthE
End Sub
#9
建议加一个字段啦,用来保存年月(Year_Month),在添加数据时同时写入相关的年月
然后就可以用
select * from tabel1 where date ='"&Trim(Check_Year_Month)&"'
然后就可以用
select * from tabel1 where date ='"&Trim(Check_Year_Month)&"'
#10
楼上有理,楼主自己想办法吧,不能全靠我一人写吧,思路一样啊
#1
這樣不知行不行啊,不行就當我沒說,我也沒試過
select * from tabel1 where date like "2005年5月"
select * from tabel1 where date like "2005年5月"
#2
或者這樣也行
select * from tabel1 where date>='2005年5月1日‘ and date < ="2005年5月30日’
select * from tabel1 where date>='2005年5月1日‘ and date < ="2005年5月30日’
#3
什么数据库?
这个字段定义的是日期格式吗?
这个字段定义的是日期格式吗?
#4
如果这个字段是字串
SELECT * FROM TableName WHERE FieldName Like '2005年5月%'
如果是日期型
SELECT * FROM TableName WHERE (FieldName >='2005年5月1日') AND (FieldName >='2005年5月30日')
SELECT * FROM TableName WHERE FieldName Like '2005年5月%'
如果是日期型
SELECT * FROM TableName WHERE (FieldName >='2005年5月1日') AND (FieldName >='2005年5月30日')
#5
BETWEEN
指定测试范围。
语法
test_expression [ NOT ] BETWEEN begin_expression AND end_expression
参数
test_expression
是用来在由 begin_expression 和 end_expression 定义的范围内进行测试的表达式。test_expression 必须与 begin_expression 和 end_expression 具有相同的数据类型。
NOT
指定谓词的结果被取反。
begin_expression
是任何有效的 Microsoft® SQL Server™ 表达式。begin_expression 必须与 test_expression 和 end_expression 具有相同的数据类型。
end_expression
是任何有效的 SQL Server 表达式。end_expression 必须与 test_expression 和 begin_expression 一样具有相同的数据类型。
AND
作为一个占位符,表示 test_expression 应该处于由 begin_expression 和 end_expression 指定的范围内。
结果类型
Boolean
结果值
如果 test_expression 的值大于或等于 begin_expression 的值并且小于或等于 end_expression 的值,则 BETWEEN 返回 TRUE。
如果 test_expression 的值小于 begin_expression 的值或者大于 end_expression 的值,则 NOT BETWEEN 返回 TRUE。
注释
若要指定排除范围,请使用大于 (>) 和小于 (<) 运算符。如果任何 BETWEEN 或 NOT BETWEEN 谓词的输入为 NULL,则结果是 UNKNOWN。
示例
A. 使用 BETWEEN
本例返回书的题头标识符,这些书的年度至今单位销售额是从 4,095 到 12,000。
USE pubs
GO
SELECT title_id, ytd_sales
FROM titles
WHERE ytd_sales BETWEEN 4095 AND 12000
GO
下面是结果集:
title_id ytd_sales
-------- -----------
BU1032 4095
BU7832 4095
PC1035 8780
PC8888 4095
TC7777 4095
(5 row(s) affected)
B. 使用 > 和 < 代替 BETWEEN
本例使用大于 (>) 和小于 (<) 运算符,由于这些运算符是非包含的,所以返回不同的结果。
USE pubs
GO
SELECT title_id, ytd_sales
FROM titles
WHERE ytd_sales > 4095 AND ytd_sales < 12000
GO
下面是结果集:
title_id ytd_sales
-------- -----------
PC1035 8780
(1 row(s) affected)
C. 使用 NOT BETWEEN
本例找出一个指定范围(从 4,095 到 12,000)外的所有行。
USE pubs
GO
SELECT title_id, ytd_sales
FROM titles
WHERE ytd_sales NOT BETWEEN 4095 AND 12000
GO
下面是结果集:
title_id ytd_sales
-------- -----------
BU1111 3876
BU2075 18722
MC2222 2032
MC3021 22246
PS1372 375
PS2091 2045
PS2106 111
PS3333 4072
PS7777 3336
TC3218 375
TC4203 15096
(11 row(s) affected)
请参见
>(大于)
<(小于)
表达式
函数
运算符(逻辑运算符)
SELECT(子查询)
WHERE
指定测试范围。
语法
test_expression [ NOT ] BETWEEN begin_expression AND end_expression
参数
test_expression
是用来在由 begin_expression 和 end_expression 定义的范围内进行测试的表达式。test_expression 必须与 begin_expression 和 end_expression 具有相同的数据类型。
NOT
指定谓词的结果被取反。
begin_expression
是任何有效的 Microsoft® SQL Server™ 表达式。begin_expression 必须与 test_expression 和 end_expression 具有相同的数据类型。
end_expression
是任何有效的 SQL Server 表达式。end_expression 必须与 test_expression 和 begin_expression 一样具有相同的数据类型。
AND
作为一个占位符,表示 test_expression 应该处于由 begin_expression 和 end_expression 指定的范围内。
结果类型
Boolean
结果值
如果 test_expression 的值大于或等于 begin_expression 的值并且小于或等于 end_expression 的值,则 BETWEEN 返回 TRUE。
如果 test_expression 的值小于 begin_expression 的值或者大于 end_expression 的值,则 NOT BETWEEN 返回 TRUE。
注释
若要指定排除范围,请使用大于 (>) 和小于 (<) 运算符。如果任何 BETWEEN 或 NOT BETWEEN 谓词的输入为 NULL,则结果是 UNKNOWN。
示例
A. 使用 BETWEEN
本例返回书的题头标识符,这些书的年度至今单位销售额是从 4,095 到 12,000。
USE pubs
GO
SELECT title_id, ytd_sales
FROM titles
WHERE ytd_sales BETWEEN 4095 AND 12000
GO
下面是结果集:
title_id ytd_sales
-------- -----------
BU1032 4095
BU7832 4095
PC1035 8780
PC8888 4095
TC7777 4095
(5 row(s) affected)
B. 使用 > 和 < 代替 BETWEEN
本例使用大于 (>) 和小于 (<) 运算符,由于这些运算符是非包含的,所以返回不同的结果。
USE pubs
GO
SELECT title_id, ytd_sales
FROM titles
WHERE ytd_sales > 4095 AND ytd_sales < 12000
GO
下面是结果集:
title_id ytd_sales
-------- -----------
PC1035 8780
(1 row(s) affected)
C. 使用 NOT BETWEEN
本例找出一个指定范围(从 4,095 到 12,000)外的所有行。
USE pubs
GO
SELECT title_id, ytd_sales
FROM titles
WHERE ytd_sales NOT BETWEEN 4095 AND 12000
GO
下面是结果集:
title_id ytd_sales
-------- -----------
BU1111 3876
BU2075 18722
MC2222 2032
MC3021 22246
PS1372 375
PS2091 2045
PS2106 111
PS3333 4072
PS7777 3336
TC3218 375
TC4203 15096
(11 row(s) affected)
请参见
>(大于)
<(小于)
表达式
函数
运算符(逻辑运算符)
SELECT(子查询)
WHERE
#6
没有和大家说楚,我要做的是一个数据库查询的程序,因为要打印每个月的客户报表,所以是要选择打印某年某月的报表,2005年5月只是我举的一个例子,所以只是一个变量,所以并不能按照楼上select语句那样写啊??而且日起从数据库里调出来的日期也是以变量的形式显示的阿?所以一直不知道用什么方法实现?怎样才能查找出来?希望各位大人在帮帮我啊!非常感谢!
#7
可以定義兩個變量
begindate 和enddate
那麼你可以通過這兩個變量把日期帶入到查詢條件裡面最,
不管是文本框輸入還是選擇都可以啦
begindate 和enddate
那麼你可以通過這兩個變量把日期帶入到查詢條件裡面最,
不管是文本框輸入還是選擇都可以啦
#8
Private Sub Command6_Click()
'2005年5月
Dim mdate As Date
Dim monthS, monthE As Date
Dim strMS, strME As String
Dim strSQl As String
mdate = "2005年5月3日"
monthS = mdate
strMS = CStr(Format(monthS, "yyyy-mm-dd"))
strMS = Mid(strMS, 1, Len(strMS) - 2) & "01"
monthS = CDate(strMS) '本月开始
monthE = DateAdd("m", 1, mdate)
strME = CStr(Format(monthE, "yyyy-mm-dd"))
strME = Mid(strME, 1, Len(strMS) - 2) & "01"
monthE = CDate(strME) '下个月开始
strSQl = "select * form table where dateField between '" & monthS & "' and '" & monthE & "'"
'运行查询语句就行了。
Print monthS
Print monthE
End Sub
#9
建议加一个字段啦,用来保存年月(Year_Month),在添加数据时同时写入相关的年月
然后就可以用
select * from tabel1 where date ='"&Trim(Check_Year_Month)&"'
然后就可以用
select * from tabel1 where date ='"&Trim(Check_Year_Month)&"'
#10
楼上有理,楼主自己想办法吧,不能全靠我一人写吧,思路一样啊