数据库的日期区间查询方法。
这里我将起始日期和结束日期分别赋值给了date_from和date_to变量。
下面的代码是用来检查起始和结束日期的合法性,但是接下去该怎么写查询语句?只需要SQL的命令。。。请大家帮帮忙。
Date_from_Check:If Not ((date_from = "" Or date_from = "MM/DD/YYYY") And (date_to = "" Or date_to = "MM/DD/YYYY")) Then If Val(Mid(date_from, 1, 2)) >= 1 And Val(Mid(date_from, 1, 2)) <= 12 Then If Val(Mid(date_from, 4, 5)) >= 1 And Val(Mid(date_from, 4, 5)) <= 31 Then If Val(Mid(date_from, 7, 10)) >= 2010 And Val(Mid(date_from, 7, 10)) <= 2020 Then GoTo Date_to_check Else MsgBox "From Date inputed not aviable!", vbOKOnly, "Error:" End If Else MsgBox "From Date inputed not aviable!", vbOKOnly, "Error:" End If Else MsgBox "From Date inputed not aviable!", vbOKOnly, "Error:" Exit Sub End If
Date_to_check: If Val(Mid(date_to, 1, 2)) >= 1 And Val(Mid(date_to, 1, 2)) <= 12 Then If Val(Mid(date_to, 4, 5)) >= 1 And Val(Mid(date_to, 4, 5)) <= 31 Then If Val(Mid(date_to, 7, 10)) >= 2010 And Val(Mid(date_to, 7, 10)) <= 2020 Then GoTo Send_SQL Else MsgBox "To Date inputed not aviable!", vbOKOnly, "Error:" End If Else MsgBox "To Date inputed not aviable!", vbOKOnly, "Error:" End If Else MsgBox "To Date inputed not aviable!", vbOKOnly, "Error:" Exit Sub End If
If date_from > date_to Then MsgBox "From Date must be earlier or equal to From Date.", vbOKOnly, "Error:" Exit Sub End If
这里需要添加查询语句。我采用的是ADO方式,请问sql查询语句应该怎么写?
也就是说 select * from 表名 where [TestTime] ????????? (问号应该怎么设置填写?)
End If
我用的是VB6.0开发软件。 展开
access中有个mid函数,可以用来截取字符串或者日期。
select * from 表名 where mid([TestTime],5,10) ='04/19/2013'其中,5代表截取的开始位置,从左数,10代表截取的长度。
数据库的日期区间查询有两种情况:
1:查询给定时间在开始时间列与结束时间列范围中数据;
2:查询日期列在开始时间列与结束时间列范围中数据。
第一种:<,>, <= , >=
select * from 表名 where 日期列 >= to_date('2015-10-20 00:00:00','yyyy-mm-dd hh24:mi:ss')
and t.日期列 <= to_date('2015-10-20 23:59:59','yyyy-mm-dd hh24:mi:ss')。
第二种 between and
select * from 表名 where 日期列 between to_date('2015-10-20 00:00:00','yyyy-mm-dd
hh24:mi:ss')and to_date('2015-10-20 23:59:59','yyyy-mm-dd hh24:mi:ss')。
扩展资料:
SQL数据库语句:
创建数据库:
CREATE DATABASE database-name。
删除数据库:
drop database dbname。
创建新表:
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)。
删除新表:
drop table tabname。
增加一个列:
Alter table tabname add column col type。
添加主键:
Alter table tabname add primary key(col)。
删除主键:
Alter table tabname drop primary key(col)。
创建索引:
create [unique] index idxname on tabname(col….)。
删除索引:
drop index idxname。
创建视图:
create view viewname as select statement。
删除视图:
drop view viewname。
参考资料来源:百度百科-sql语句大全
有两种方式:to_char方式和to_date方式。
假设要查询2011-05-02到2011-05-30之间的数据,实现方式如下:
1、to_date方式:
select * from tablename where time>=to_date('2011-05-02','yyyy-mm-dd') and time <=
to_date('2011-05-30','yyyy-mm-dd');
运行的结果是:可以显示05-02的数据,但是不能显示05-30的数据。
运行的结果是:可以显示05-02的数据,但是不能显示05-30的数据。
所以可以得出结论:
(1)如果想显示05-30的数据可以to_date('2011-05-31','yyyy-mm-dd'),这样就能显示30号的了。
(2)如果想要显示05-30的数据可以to_date('2011-05-30 23:59:59 999','yyyy-mm-dd hh24:mi:ss')也是可以查出来的。
2、to_char方式:
同样查询上面两个日期
select * from tablename where to_char(time,'yyyy-mm-dd')>=2011-05-02 and
to_char(time,'yyyy-mm-dd')<=2011-05-3;
查询结果:可以同时显示05-02和05-30的数据。
另外:可以用between and 代替 >=符号。
扩展资料:
SQL数据库语句:
创建数据库:
CREATE DATABASE database-name。
删除数据库:
drop database dbname。
创建新表:
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)。
删除新表:
drop table tabname。
增加一个列:
Alter table tabname add column col type。
添加主键:
Alter table tabname add primary key(col)。
删除主键:
Alter table tabname drop primary key(col)。
创建索引:
create [unique] index idxname on tabname(col….)。
删除索引:
drop index idxname。
创建视图:
create view viewname as select statement。
删除视图:
drop view viewname。
参考资料来源:
假设要查询2011-05-02到2011-05-30之间的数据,实现方式如下:
to_date方式:
select * from tablename where time>=to_date('2011-05-02','yyyy-mm-dd') and time <= to_date('2011-05-30','yyyy-mm-dd');
运行的结果是:可以显示05-02的数据,但是不能显示05-30的数据。
运行的结果是:可以显示05-02的数据,但是不能显示05-30的数据。
所有可以得出结论:
①如果想显示05-30的数据可以to_date('2011-05-31','yyyy-mm-dd'),这样就能显示30号的了。
②如果想要显示05-30的数据可以to_date('2011-05-30 23:59:59 999','yyyy-mm-dd hh24:mi:ss')也是可以查出来的。
to_char方式:
同样查询上面两个日期
select * from tablename where to_char(time,'yyyy-mm-dd')>=2011-05-02 and to_char(time,'yyyy-mm-dd')<=2011-05-3;
查询结果:可以同时显示05-02和05-30的数据。
另外:可以用between and 代替 >=符号
按照你这个
select * from 表名 where mid([TestTime],5,10) ='04/19/2013'
其中,5代表截取的开始位置,从左数,10代表截取的长度,你那个fri和04中间有没空格,看不出来,如果我写错的话,你自己改一下吧