求教关于SELECT查询日期大于今日的数据

时间:2022-12-26 15:08:26
列字段“日期”的格式是这样的:"yyyy年MM月dd日 dddd"
DTPriqi和DTPriqiD是DateTimePicker控件,格式是:"yyyy年MM月dd日 dddd"
想查询日期大于或等于今日的数据,用这句不行:

Dim SelectString As String = "SELECT 日期,时间,地点,事项, FROM 备忘" & "WHERE 日期>=" & "'" & now.date & "'"

还有想查询日期介于控件DTPriqi和DTPriqiD之间的数据,怎么查?

11 个解决方案

#1


使用 between

#2


搞清楚你的(关系)数据库的sql语句中到底是如何表达日期的,其格式是什么。你提交给它的sql语句,是以它的sql语句语法为准,不是以vb.net的(日期)语法为准。在你抛开vb.net,首先搞懂你的数据库中如何表达日期常量的格式以后,使用date.now.tostring(....)方式输出正确格式的字符串,这样才能拼接到sql中。

#3


引用楼主 qdaijchf 的回复:
还有想查询日期介于控件DTPriqi和DTPriqiD之间的数据,怎么查?
按照你的代码,可以简单改为,例如:
Dim SelectString As String = "SELECT 日期,时间,地点,事项, FROM 备忘" & "WHERE 日期>=" & "'" & datetime.parse(DTPriqi).date.tostring(....) & "' and 日期<"datetime.parse(DTPriqi).date.adddays(1).tostring(....) & "'"


例如输入两个日期  2012.1.15 和  2012.2.11,那么查询条件可能就是
where 日期>='2012-1-15' and 日期<'2012-2-12'

#4


between 开始时间 and 结束时间
或者
日期>=开始时间 and 日期<=结束时间

#5


数据库中保存的是“日期”类型吗?

搞清楚,到时是日期呢还是日期时间!如果你把日期时间当作日期,那么错误可就很离谱了。

#6


另外,在表达式左边的应该是字段本身,而不是什么函数,这样才能用到索引。我想这也是数据库sql语句编程的基本知识。

希望正规地学一些sql编程。

#7


首先要搞清楚是什么数据库
MSSQL SERVER 
   日期>getdate()
   日期 between  and 
Oracle
   日期>sysdate
   to_char(日期,'YYYY-MM-DD') between

#8


between 开始时间 and 结束时间

#9


 sqlstr += " where cd.ckpgdate >= to_date('" & DateTime.Now.AddDays(-15) & "','RRRR-MM-DD HH24:MI:SS')"
                sqlstr += "  and cd.ckpgdate <= to_date('" & DateTime.Now.AddDays(+15) & "','RRRR-MM-DD HH24:MI:SS') and c.containerid<> c.containername "

#10


用个 to_date函数就可以了啊,后面格式自己改

#11


你这个是得不到结果呢,还是有错误啊,

SQL是不是多了逗号,有少了空格啊

#1


使用 between

#2


搞清楚你的(关系)数据库的sql语句中到底是如何表达日期的,其格式是什么。你提交给它的sql语句,是以它的sql语句语法为准,不是以vb.net的(日期)语法为准。在你抛开vb.net,首先搞懂你的数据库中如何表达日期常量的格式以后,使用date.now.tostring(....)方式输出正确格式的字符串,这样才能拼接到sql中。

#3


引用楼主 qdaijchf 的回复:
还有想查询日期介于控件DTPriqi和DTPriqiD之间的数据,怎么查?
按照你的代码,可以简单改为,例如:
Dim SelectString As String = "SELECT 日期,时间,地点,事项, FROM 备忘" & "WHERE 日期>=" & "'" & datetime.parse(DTPriqi).date.tostring(....) & "' and 日期<"datetime.parse(DTPriqi).date.adddays(1).tostring(....) & "'"


例如输入两个日期  2012.1.15 和  2012.2.11,那么查询条件可能就是
where 日期>='2012-1-15' and 日期<'2012-2-12'

#4


between 开始时间 and 结束时间
或者
日期>=开始时间 and 日期<=结束时间

#5


数据库中保存的是“日期”类型吗?

搞清楚,到时是日期呢还是日期时间!如果你把日期时间当作日期,那么错误可就很离谱了。

#6


另外,在表达式左边的应该是字段本身,而不是什么函数,这样才能用到索引。我想这也是数据库sql语句编程的基本知识。

希望正规地学一些sql编程。

#7


首先要搞清楚是什么数据库
MSSQL SERVER 
   日期>getdate()
   日期 between  and 
Oracle
   日期>sysdate
   to_char(日期,'YYYY-MM-DD') between

#8


between 开始时间 and 结束时间

#9


 sqlstr += " where cd.ckpgdate >= to_date('" & DateTime.Now.AddDays(-15) & "','RRRR-MM-DD HH24:MI:SS')"
                sqlstr += "  and cd.ckpgdate <= to_date('" & DateTime.Now.AddDays(+15) & "','RRRR-MM-DD HH24:MI:SS') and c.containerid<> c.containername "

#10


用个 to_date函数就可以了啊,后面格式自己改

#11


你这个是得不到结果呢,还是有错误啊,

SQL是不是多了逗号,有少了空格啊