VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2661|回复: 14

請教時間處理問題

[复制链接]

1

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-2-7 18:00:01 | 显示全部楼层 |阅读模式

表tb1結構:
    f1 int  自增
    f2 datetime        

f2的值大致如下:
2016-12-20 22:22:32.000
2016-12-20 23:32:38.000
2016-12-20 00:24:49.000

declare t1 char(5),
        t2 char(5),
        t3 datetime

set t1='23:30'
set t1='00:30'  第二天的l凌晨時間

現在請教如何在表tb1中查詢出字段f2時間部分在t1至t2范圍的紀錄


回复

使用道具 举报

0

主题

114

帖子

69.00

积分

新手上路

Rank: 1

积分
69.00
发表于 2020-3-29 12:00:02 | 显示全部楼层
select * from tablename where f2 between cast(('2016-12-20 '+'23:30'+':000') as datetime) and cast(('2016-12-21 '+'00:30'+':000') as datetime)
回复

使用道具 举报

0

主题

114

帖子

69.00

积分

新手上路

Rank: 1

积分
69.00
发表于 2020-3-29 20:00:01 | 显示全部楼层

declare @a table(id int identity(1,1),f2 datetime)
insert into @a select '2016-12-20 22:22:32.000' union all
select '2016-12-20 23:32:38.000' union all
select '2016-12-20 00:24:49.000'
select * from @a where f2 between
cast(('2016-12-20 '+'23:30'+':000') as datetime)
and cast(('2016-12-21 '+'00:30'+':000') as datetime)
结果:
id          f2                                                     
----------- ------------------------------------------------------
2           2016-12-20 23:32:38.000

(所影响的行数为 1 行)
回复

使用道具 举报

0

主题

35

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
发表于 2020-3-29 21:15:01 | 显示全部楼层
select * from tablename
where convert(varchar(10),f2,108) between '23:30' and '00:30'
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-3-30 00:00:02 | 显示全部楼层
create table T(f1 int, f2 datetime)
insert T select 1, '2016-12-20 22:22:32.000'
union all select 2, '2016-12-20 23:32:38.000'
union all select 3, '2016-12-20 00:24:49.000'

declare @t1 char(5), @t2 char(5)
set @t1='23:30'
set @t2='00:30'

select * from T
where f2 between (convert(char(10), f2, 120)+' '+@t1) and (convert(char(10), f2+1, 120)+' '+@t2)
--result
f1          f2                                                     
----------- ------------------------------------------------------
2           2016-12-20 23:32:38.000

(1 row(s) affected)
回复

使用道具 举报

1

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-3-31 16:30:01 | 显示全部楼层
fanfan1980:
你的語句找'2016-12-20 00:24:49.000'那天的紀錄
回复

使用道具 举报

1

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-3-31 19:15:01 | 显示全部楼层
fanfan1980:
你的語句找不到 '2016-12-20 00:24:49.000'那天的紀錄
回复

使用道具 举报

1

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-4-1 16:30:01 | 显示全部楼层
很多時間紀錄:
2016-12-21 23:47:10.000
2016-12-21 23:54:19.000
2016-12-27 23:55:25.000
2016-12-23 23:54:14.000
2016-12-24 00:04:14.000
2016-12-24 23:58:42.000






回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-4-6 09:30:01 | 显示全部楼层
create table #t(f1 int, f2 datetime)
insert #t select 1, '2016-12-20 22:22:32.000'
union all select 2, '2016-12-20 23:32:38.000'
union all select 3, '2016-12-20 00:24:49.000'

select * from #t where datepart(hh,dateadd(mi,30,f2))between 0 and 1
回复

使用道具 举报

1

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-4-7 18:45:01 | 显示全部楼层
還是不行,也可以查尋出 2016/12/28 00:34:11
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表