海
表格结构
Id No Date Time
0001, 01-05-2009, 040000
0001, 02-05-2009, 020000
0002, 01-05-2009, 060000
0002, 01-05-2009, 180000
时间和日期是nvarchar
我想获取
之间的数据我尝试了下面提到的查询
Select
idno, min (time), max (time)
from
table
where
time between 030001 and 030000
结果中没有显示任何内容,因为今天的时间是从凌晨03.00到凌晨03.01 我今天早上03.00到昨天凌晨03.01正好需要
我需要针对上述条件的SQL查询
任何人都可以帮助我吗?
JASH。
答案 0 :(得分:1)
当您的日期格式为DD-MM-YYYY时,很难排序或过滤。在这种格式中,01-01-2009在02-01-2000之前出现!
因此,首先将您的日期首先转换为长年,然后将短日期转换为:
YYYY-MM-DD HH:MM:SS
像这样的查询可以做到这一点:
select [id no],
substring(date,1,2) + '-' + substring(date,4,2) + '-' +
substring(date,7,4) + ' ' +
substring(time,1,2) + ':' + substring(time,3,2) + ':'
substring(time,5,2) as NormalDate
from YourTable
现在,您可以轻松选择特定时间段内的所有行:
select *
from (
select [id no],
substring(date,1,5) + '-' + substring(date,7,4) + ' ' +
substring(time,1,2) + ':' + substring(time,3,2) + ':'
substring(time,5,2) as NormalDate
from YourTable
) sub
where '2009-05-01 03:00:00' < NormalDate
and NormalDate < '2009-05-02 03:00:00'