我有两个不同的MS excel表,包含大约12列的40000行数据。我想将数据库中的两个表(可以使用任何数据库)中的数据导入到2个不同的表中(table_a& table_b )。现在,'table_a'中有一列(列名为“start_time”),数据类型为“date / time”,存储的值为“08:30:50”。此外,'table_b'中有一列(列名:“total_time”),数据类型为'string',存储的值为“0800-1000”。
我的问题是,通过查看值“08:30:50”,我知道它属于“0800-1000”范围。但考虑到我将使用MS SQL 2005或MS SQL 2008,如何通过SQL查询来做到这一点?
提前致谢。
答案 0 :(得分:0)
这可能是解决方案: -
Set Nocount On;
Declare @table_a Table
(
Id Int Identity(1,1)
,starttime Datetime
)
Declare @table_b Table
(
Id Int Identity(1,1)
,total_time Varchar(100)
)
Insert Into @table_a(starttime) Values
('08:30:50')
,('06:30:50')
Insert Into @table_b(total_time) Values
('0600-0759')
,('0800-1000')
Select a.Id
,a.starttime
,b.total_time
From (
Select Id
,b.total_time
,Cast(Left(b.total_time,2) +':'+ Right(Left(b.total_time,4),2) As time) As StartHours
,Cast(Left(Right(b.total_time,4),2) +':'+ Right(b.total_time,2) As time) As EndHours
From @table_b As b
) As b
Join @table_a As a On Cast(a.starttime As Time) >= b.StartHours And Cast(a.starttime As Time) <= b.EndHours
输出: -