SQL问题

lindawei 2003-12-25 02:19:09
在表中:
有字段 code date time 等等字段
01 2003-12-20 15:30:20
02 2003-12-20 15:30:25
…………………………………………
0123 2003-12-22 12:40:30
0128 2003-12-22 12:41:25

现在要求按照一段时间进行统计:
我选择日期和时间 从
开始日期:2003-12-20 开始时间:15:31:00
结束日期:2003-12-22 结束时间:12:41:00
那么 我只能提02和0123的记录
依次类推
我的意思就是 只限制开始日期的时间 和结束日期的时间 中间不管时间
只管日期。 sql那样实现???????????

...全文
48 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lindawei 2003-12-25
  • 打赏
  • 举报
回复
好了 我解决了

谢谢 现在给分
gmlxf 2003-12-25
  • 打赏
  • 举报
回复

q_main.SQL.Add('select distinct F_invoice from fee ');
q_man.SQL.Add('where (convert(varchar(10),[f_date],120)' + '+ '' '' ' + 'convert(varchar,[f_time],108))>=' + :s1');

--- 不好意思,语法我不清楚,你可以这样调试,你将你前台构造的SQL语句打印出来看看,将打印出来的与查询分析器里面正确的语句对比就知道了。

是你的字符窜连接问题了,打印出来在查询分析器中执行。
lindawei 2003-12-25
  • 打赏
  • 举报
回复
q_main是adoquery
s1和s2是参数
q_main.Close;
q_main.SQL.Clear;
q_main.SQL.Add('select distinct F_invoice from fee ');
q_man.SQL.Add('where (convert(varchar(10),[f_date],120)+' '+convert(varchar,[f_time],108))>=:s1');
q_main.SQL.Add('and (convert(varchar(10),[f_date],120)+' '+convert(varchar,[f_time],108))<=:s2')
为什么这样写错误
gmlxf 2003-12-25
  • 打赏
  • 举报
回复
如果放在一个字段处理就方便了

有convert函数可以转换日期的各种格式,很方便的。


-- 以下是convert参考
CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。

语法

使用 CONVERT:

CONVERT (data_type[(length)], expression [, style])

参数
expression

是任何有效的 Microsoft® SQL Server™ 表达式。有关更多信息,请参见表达式。

data_type

目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。有关可用的数据类型的更多信息,请参见数据类型。

length

nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。

style

在表中,左侧的两列表示将 datetime 或 smalldatetime 转换为字符数据的 style 值。给 style 值加 100,可获得包括世纪数位的四位年份 (yyyy)。

不带世纪数位 (yy) 带世纪数位 (yyyy)
标准
输入/输出**
- 0 或 100 (*) 默认值 mon dd yyyy hh:miAM(或 PM)
1 101 美国 mm/dd/yyyy
2 102 ANSI yy.mm.dd
3 103 英国/法国 dd/mm/yy
4 104 德国 dd.mm.yy
5 105 意大利 dd-mm-yy
6 106 - dd mon yy
7 107 - mon dd, yy
8 108 - hh:mm:ss
- 9 或 109 (*) 默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10 110 美国 mm-dd-yy
11 111 日本 yy/mm/dd
12 112 ISO yymmdd
- 13 或 113 (*) 欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]
- 21 或 121 (*) ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)
- 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM
- 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM
gmlxf 2003-12-25
  • 打赏
  • 举报
回复
-- 合并两个日期与时间字段
declare @f_date datetime,@f_time datetime
set @f_date = '2003-12-24'
set @f_time = '13:30:25'
select @f_date 日期,@f_time 时间,convert(varchar(10),@f_date,120) + ' ' + convert(varchar,@f_time,108) [日期+时间]
victorycyz 2003-12-25
  • 打赏
  • 举报
回复
但是在做月报表的时候不好做了啊
------------------------------

有什么不好处理的?

select ... from tablename where convert(varchar(6),日期时间字段,112)='200312'
gmlxf 2003-12-25
  • 打赏
  • 举报
回复
SELECT DISTINCT F_invoice
FROM Fee
where convert(varchar(10),[f_date],120) + ' ' + convert(varchar,[f_time],108)
>='2003-12-24 13:30:25'
and
convert(varchar(10),[f_date],120) + ' ' + convert(varchar,[f_time],108)<='2003-12-25 13:58:30'

-- or

SELECT DISTINCT F_invoice
FROM Fee
where convert(varchar(10),[f_date],120) + ' ' + convert(varchar,[f_time],108)
between '2003-12-24 13:30:25' and '2003-12-25 13:58:30'
lindawei 2003-12-25
  • 打赏
  • 举报
回复
做月报表的时候 我是提取日期 还做月报表了

distinct 不是有很多的日期

如:
2003-12-25 12:20:10
2003-12-25 12:25:10
lindawei 2003-12-25
  • 打赏
  • 举报
回复
我知道处理成一个字段要方便

但是在做月报表的时候不好做了啊
lindawei 2003-12-25
  • 打赏
  • 举报
回复
SELECT DISTINCT F_invoice
FROM Fee
where [f_date]+‘ ’+[f_time]>='2003-12-24 13:30:25' and [f_date]+ [f_time]<='2003-12-25 13:58:30'

在查询分析器 写的
不可以
victorycyz 2003-12-25
  • 打赏
  • 举报
回复
我选择日期和时间 从
开始日期:2003-12-20 开始时间:15:31:00
结束日期:2003-12-22 结束时间:12:41:00
那么 我只能提02和0123的记录
------------------------------------
按你说的选取规则,02的记录怎么也会被选上吗?

另,不明白为什么要分两个字段存放日期时间。如果是一个字段,处理就很方便了。
lindawei 2003-12-25
  • 打赏
  • 举报
回复
好象不行 我看了的
gmlxf 2003-12-25
  • 打赏
  • 举报
回复
少了空格,看 txlicenhe(马可) 的代码,可以的。
caiyunxia 2003-12-25
  • 打赏
  • 举报
回复
select distinct code from 表
where CAST(CONVERT(CHAR(10),DATE,120) +' ' +[TIME] AS DATETIME)>=CAST(CONVERT(CHAR(10),开始日期,120) +' ' +开始时间 AS DATETIME) AND
CAST(CONVERT(CHAR(10),DATE,120) +' ' +[TIME] AS DATETIME)<=CAST(CONVERT(CHAR(10),结束日期,120) +' ' +结束时间 AS DATETIME)
gmlxf 2003-12-25
  • 打赏
  • 举报
回复
你要把date与time合并成为一个datetime比较。
txlicenhe 2003-12-25
  • 打赏
  • 举报
回复
select distinct code from 表
where [date]+' ' + [time]
between 开始日期 + ' ' + 开始时间 and 结束日期 +' ' + 结束时间
gmlxf 2003-12-25
  • 打赏
  • 举报
回复
select distinct code from 表 where
cast(([date] + [time]) as datetime) between '2003-12-20 15:31:00' and '2003-12-22 12:41:00'
lindawei 2003-12-25
  • 打赏
  • 举报
回复
这样写肯定是不行的
因为时间只管开始日期。 和结束日期。 不管中间的时间
select distinct code from 表 where date>=开始日期 and time>=开始时间 and date<=结束日期 and time<=结束时间

在表中 date和time是分开的字段都是datetime类型。

我不想把时间和日期都写进去
用formatdatetime('yyyy-mm-dd',dp.datetime)写的
资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 在计算机视觉领域,实时目标跟踪是许多应用的核心任务,例如监控系统、自动驾驶汽车和无人机导航等。本文将重点介绍一种在2017年备受关注的高效目标跟踪算法——BACF(Boosted Adaptive Clustering Filter)。该算法因其卓越的实时性和高精度而脱颖而出,其核心代码是用MATLAB编写的。 BACF算法全称为Boosted Adaptive Clustering Filter,是基于卡尔曼滤波器改进的一种算法。传统卡尔曼滤波在处理复杂背景和目标形变时存在局限性,而BACF通过引入自适应聚类和Boosting策略,显著提升了对目标特征的捕获和跟踪能力。 自适应聚类是BACF算法的关键技术之一。它通过动态更新特征空间中的聚类中心,更准确地捕捉目标的外观变化,从而在光照变化、遮挡和目标形变等复杂情况下保持跟踪的稳定性。此外,BACF还采用了Boosting策略。Boosting是一种集成学习方法,通过组合多个弱分类器形成强分类器。在BACF中,Boosting用于优化目标检测性能,动态调整特征权重,强化对目标识别贡献大的特征,从而提高跟踪精度。BACF算法在设计时充分考虑了计算效率,能够在保持高精度的同时实现快速实时的目标跟踪,这对于需要快速响应的应用场景(如视频监控和自动驾驶)至关重要。 MATLAB作为一种强大的数学计算和数据分析工具,非常适合用于算法的原型开发和测试。BACF算法的MATLAB实现提供了清晰的代码结构,方便研究人员理解其工作原理并进行优化和扩展。通常,BACF的MATLAB源码包含以下部分:主函数(实现整个跟踪算法的核心代码)、特征提取模块(从视频帧中提取目标特征的子程序)、聚类算法(实现自适应聚类过程)、Boosting算法(包含特征权重更新的代
内容概要:本书《Deep Reinforcement Learning with Guaranteed Performance》探讨了基于李雅普诺夫方法的深度强化学习及其在非线性系统最优控制中的应用。书中提出了一种近似最优自适应控制方法,结合泰勒展开、神经网络、估计器设计及滑模控制思想,解决了不同场景下的跟踪控制问题。该方法不仅保证了性能指标的渐近收敛,还确保了跟踪误差的渐近收敛至零。此外,书中还涉及了执行器饱和、冗余解析等问题,并提出了新的冗余解析方法,验证了所提方法的有效性和优越性。 适合人群:研究生及以上学历的研究人员,特别是从事自适应/最优控制、机器人学和动态神经网络领域的学术界和工业界研究人员。 使用场景及目标:①研究非线性系统的最优控制问题,特别是在存在输入约束和系统动力学的情况下;②解决带有参数不确定性的线性和非线性系统的跟踪控制问题;③探索基于李雅普诺夫方法的深度强化学习在非线性系统控制中的应用;④设计和验证针对冗余机械臂的新型冗余解析方法。 其他说明:本书分为七章,每章内容相对独立,便于读者理解。书中不仅提供了理论分析,还通过实际应用(如欠驱动船舶、冗余机械臂)验证了所提方法的有效性。此外,作者鼓励读者通过仿真和实验进一步验证书中提出的理论和技术。

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧