SQL数据库中如何筛选某一个表中的时间字段的范围

2024-11-28 19:00:50
推荐回答(5个)
回答1:

例如:表a中的datetime字段都是‘2013-05-11 13:10:00‘这种格式的,筛选其中8:00到10:00之间的。

select * from 表a
where substring(convert(varchar,字段名,120),12,8) between '08:00:00' and '10:00:00'

怎么利用SQL语句查询数据库中具体某个字段的重复行?

可用group by……having来实现。

可做如下测试:

1、创建表插入数据:

create table test

(id int,name varchar(10))

insert into test values (1,'张三')

insert into test values (2,'李四')

insert into test values (3,'张三')

insert into test values (4,'王五')

insert into test values (5,'赵六')其中name是张三的有两行,也就是重复行。

2、执行sql语句如下:

select * from test where name in 

(select name from test group by name having COUNT(*)>1)

回答2:

select * from 表a
where substring(convert(varchar,字段名,120),12,8) between '08:00:00' and '10:00:00'

试试这样,看看结果对不

回答3:

SQL2005
数据表数据
b_1 b_2(datetime)
1 2013-05-23 10:44:46.780
2 2013-05-23 10:44:48.090
3 2013-05-23 10:44:49.857
4 2013-05-23 10:44:50.700

select b_1,b_2 from bb where b_2>'2013-05-23 10:40:45' and b_2<'2013-05-23 10:44:50'

查询结果:
b_1 b_2
1 2013-05-23 10:44:46.780
2 2013-05-23 10:44:48.090
3 2013-05-23 10:44:49.857

回答4:

首先 把所有的 转换成 日期类型,之后用日期 所对应的函数,BETWEEN AND 即可

回答5:

select * from a where datedepart(hh,datetime)>=8 and datedepart(hh,datetime)<10