如何按时间查询!

hanzhuangren 2009-04-30 01:27:43
如何按同一日期 不同的时分秒来查询呢!
...全文
204 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouchen595388095 2009-04-30
  • 打赏
  • 举报
回复
原来看帖子也是我受益匪浅 学的 东西多了
hanzhuangren 2009-04-30
  • 打赏
  • 举报
回复
还是有问题的!没有时间是不正确的!


同一个号码在两分之内用最早的时间作为合并以后的时间!
hanzhuangren 2009-04-30
  • 打赏
  • 举报
回复
真牛啊!

是我学习的榜样!看来还得多多联系阿!
-狙击手- 2009-04-30
  • 打赏
  • 举报
回复
------------------------------------------------------------------------
-- Author: happyflystone
-- Date : 2009-04-30 14:54:01
-- Ver: Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86)
-- Apr 14 2006 01:12:25
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4)
--
------------------------------------------------------------------------

-- Test Data: tb_sms_mo
IF OBJECT_ID('tb_sms_mo') IS NOT NULL
DROP TABLE tb_sms_mo
Go
CREATE TABLE tb_sms_mo(记录编号 INT,手机号码 bigINT,短信内容 NVARCHAR(200),接收时间 DATETIME)
Go
INSERT INTO tb_sms_mo
SELECT 51,13903801942,'我在平原饭店后面洗浴中心买澡票被骗,希望你们查处。','2009-03-14 17:26:36.000' UNION ALL
SELECT 52,13937368470,'我家装修时被家装公司强行将我家门拉走,还将工期延长,好多未完工就不管了,请问如何维权?','2009-03-14 17:39:17.000' UNION ALL
SELECT 53,13598671063,'我在莎幔利莎美容店受误导开了双份的美容卡。','2009-03-14 17:44:07.000' UNION ALL
SELECT 54,13598671063,'就说不能退,我希望工商局能帮我维护我的权益!','2009-03-14 17:44:09.000' UNION ALL
SELECT 55,13781956908,'我单位委托德帮物流新乡分公司运货,运坏损失近三万,近四个月仍据不赔偿。请可否协助?','2009-03-14 17:51:06.000' UNION ALL
SELECT 56,13703436404,'去年北京有一骗子公司通过电话说它是北京电视购物中心骗我购买了一个手机价值约一千八佰元,手机通过中国邮?','2009-03-14 17:55:03.000' UNION ALL
SELECT 57,13703436404,'假手机模型,而邮局先代收货款,收款后才能拆封然后就不负任何责任.骗子现在,依然还在行骗,不知怎么才能使骗子绳之以法.怎样让邮局不再当骗子','2009-03-14 17:55:07.000 ' UNION ALL
SELECT 58,13703436404,'的帮凶.','2009-03-14 17:55:08.000' UNION ALL
SELECT 59,13623900047,'我的手机中天-爱立信D518电池买来就有问题,买时说待机在十天以上,而真实待机只有三天,并在保修期内,却','2009-03-14 17:56:46.000' UNION ALL
SELECT 60,13623900047,'不满,希望给予协助,以保护消费者应有权益,刘蕴','2009-03-14 17:56:52.000'
GO
--Start
create function f_str(@tel bigint,@d datetime)
returns nvarchar(1000)
as
begin
declare @s nvarchar(1000)
select @s = isnull(@s+'','')+短信内容 from tb_sms_mo where 手机号码 = @tel and abs(datediff(mi,@d,接收时间)) < 2
order by 接收时间
return @s
end
go



select distinct 手机号码,dbo.f_str(手机号码,接收时间)
from tb_sms_mo
group by 手机号码,接收时间


drop function f_str

--Result:
/*
手机号码
-------------------- ------------------
13598671063 我在莎幔利莎美容店受误导开了双份的美容卡。就说不能退,我希望工商局能帮我维护我的权益!
13623900047 我的手机中天-爱立信D518电池买来就有问题,买时说待机在十天以上,而真实待机只有三天,并在保修期内,却不满,希望给予协助,以保护消费者应有权益,刘蕴
13703436404 去年北京有一骗子公司通过电话说它是北京电视购物中心骗我购买了一个手机价值约一千八佰元,手机通过中国邮?假手机模型,而邮局先代收货款,收款后才能拆封然后就不负任何责任.骗子现在,依然还在行骗,不知怎么才能使骗子绳之以法.怎样让邮局不再当骗子的帮凶.
13781956908 我单位委托德帮物流新乡分公司运货,运坏损失近三万,近四个月仍据不赔偿。请可否协助?
13903801942 我在平原饭店后面洗浴中心买澡票被骗,希望你们查处。
13937368470 我家装修时被家装公司强行将我家门拉走,还将工期延长,好多未完工就不管了,请问如何维权?



*/
--End
hanzhuangren 2009-04-30
  • 打赏
  • 举报
回复
因为用的是MAS API来开发的!没有办法控制阿!只能对数据作业务处理了!
-狙击手- 2009-04-30
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 hanzhuangren 的回复:]
顶起!继续解决此问题!
[/Quote]

其实你这个在往tb_sms_mo插入时就要判断一下,把接收时间 修正一下就方便多了
hanzhuangren 2009-04-30
  • 打赏
  • 举报
回复
顶起!继续解决此问题!
hanzhuangren 2009-04-30
  • 打赏
  • 举报
回复
看来还是没有实现到我的意思!这样我把详细的逻辑说下!

tb_sms_mo

记录编号 手机号码 短信内容 接收时间
51 13903801942 我在平原饭店后面洗浴中心买澡票被骗,希望你们查处。 2009-03-14 17:26:36.000
52 13937368470 我家装修时被家装公司强行将我家门拉走,还将工期延长,好多未完工就不管了,请问如何维权? 2009-03-14 17:39:17.000
53 13598671063 我在莎幔利莎美容店受误导开了双份的美容卡。 2009-03-14 17:44:07.000
54 13598671063 就说不能退,我希望工商局能帮我维护我的权益! 2009-03-14 17:44:09.000
55 13781956908 我单位委托德帮物流新乡分公司运货,运坏损失近三万,近四个月仍据不赔偿。请可否协助? 2009-03-14 17:51:06.000
56 13703436404 去年北京有一骗子公司通过电话说它是北京电视购物中心骗我购买了一个手机价值约一千八佰元,
手机通过中国邮政快递邮寄过来,谁知收货后才知是个 2009-03-14 17:55:03.000
57 13703436404 假手机模型,而邮局先代收货款,收款后才能拆封然后就不负任何责任.骗子现在
依然还在行骗,不知怎么才能使骗子绳之以法.怎样让邮局不再当骗子 2009-03-14 17:55:07.000
58 13703436404 的帮凶. 2009-03-14 17:55:08.000
59 13623900047 我的手机中天-爱立信D518电池买来就有问题,买时说待机在十天以上,而真实待机只有三天,
并在保修期内,却不保修或调换,本人对售后服务很 2009-03-14 17:56:46.000
60 13623900047 不满,希望给予协助,以保护消费者应有权益,刘蕴 2009-03-14 17:56:52.000



以上为数据库数据! 因为接收过来的短信内容只要超过70个字就自动拆分了!所以就导致了同一条短信就会拆分成几条,现在只能对这些数据做修改再插入到另一个表里,所以只要是当日同一时间内时间间隔在1分钟之内的,就把这些内容合作成一条插入到另一个数据表里!



谢谢大大们!
zhangyanyang 2009-04-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 happyflystone 的回复:]
这个意思 :



SQL code------------------------------------------------------------------------
-- Author: happyflystone
-- Date : 2009-04-30 13:57:31
-- Ver: Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86)
-- Apr 14 2006 01:12:25
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Standard Edition on Windows NT 5.0 (Build 2195: Service Pack …
[/Quote]
经典呀,不好想
hanzhuangren 2009-04-30
  • 打赏
  • 举报
回复
谢谢大大!
-狙击手- 2009-04-30
  • 打赏
  • 举报
回复
这个意思 :


------------------------------------------------------------------------
-- Author: happyflystone
-- Date : 2009-04-30 13:57:31
-- Ver: Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86)
-- Apr 14 2006 01:12:25
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4)
--
------------------------------------------------------------------------

-- Test Data: T1
IF OBJECT_ID('T1') IS NOT NULL
DROP TABLE T1
Go
CREATE TABLE T1(a DATETIME,b INT)
Go
INSERT INTO T1
SELECT '2009-01-01 10:1:1',1 UNION ALL
SELECT '2009-01-01 10:2:1',2 UNION ALL
SELECT '2009-01-01 10:5:1',1 UNION ALL
SELECT '2009-01-01 10:9:1',1 UNION ALL
SELECT '2009-01-01 10:10:1',2 UNION ALL
SELECT '2009-01-01 10:11:1',2
GO
--Start
declare @d datetime
select @d = min(a) from t1
SELECT
* ,id =identity(int,1,1)
into #
FROM
T1
select * from t1
select max(a) as a,sum(b) as b
from #
group by datediff(mi,@d,a)-id
Drop table #
--Result:
/*

a b
----------------------- -----------
2009-01-01 10:01:01.000 1
2009-01-01 10:02:01.000 2
2009-01-01 10:05:01.000 1
2009-01-01 10:09:01.000 1
2009-01-01 10:10:01.000 2
2009-01-01 10:11:01.000 2

a b
----------------------- -----------
2009-01-01 10:02:01.000 3
2009-01-01 10:05:01.000 1
2009-01-01 10:11:01.000 5
*/
--End
-狙击手- 2009-04-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hanzhuangren 的回复:]
是这样的!

我想把相距没有超过两分钟的数据都合并成为一条!

求该语句!谢谢!
[/Quote]
你给点测试数据并把想要得到的结果写出来
csdyyr 2009-04-30
  • 打赏
  • 举报
回复
给出数据和结果。
hanzhuangren 2009-04-30
  • 打赏
  • 举报
回复
顶起!
hanzhuangren 2009-04-30
  • 打赏
  • 举报
回复
是这样的!

我想把相距没有超过两分钟的数据都合并成为一条!

求该语句!谢谢!
Ray_Zhang 2009-04-30
  • 打赏
  • 举报
回复
select convert(varchar(25),getdate(),121)
你看一下运行结果,应该就能自己知道了
jia_guijun 2009-04-30
  • 打赏
  • 举报
回复
select * from tb where convert(varchar(10),datetime,120)='2009-04-30'  --日期
and Datepart(hh,getdate())=13 --小时
and Datepart(mi,getdate())=36 --分钟
and Datepart(ss,getdate())=58 --秒
sdhdy 2009-04-30
  • 打赏
  • 举报
回复
你再看看这个。
DATEDIFF
返回跨两个指定日期的日期和时间边界数。

语法
DATEDIFF ( datepart , startdate , enddate )

参数
datepart

是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。

日期部分 缩写
year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms


startdate

是计算的开始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。

因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。

如果您只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。

有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。

enddate

是计算的终止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。

返回类型
integer

注释
startdate 是从 enddate 减去。如果 startdate 比 enddate 晚,返回负值。

当结果超出整数值范围,DATEDIFF 产生错误。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23.647 秒。对于秒,最大数是 68 年。

计算跨分钟、秒和毫秒这些边界的方法,使得 DATEDIFF 给出的结果在全部数据类型中是一致的。结果是带正负号的整数值,其等于跨第一个和第二个日期间的 datepart 边界数。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之间的星期数是 1。

示例
此示例确定在 pubs 数据库中标题发布日期和当前日期间的天数。

USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles

liangCK 2009-04-30
  • 打赏
  • 举报
回复
WHERE DATEDIFF(day,'2009-04-30 12:20:24','2009-04-30 19:50:33')=0
sdhdy 2009-04-30
  • 打赏
  • 举报
回复
给你这个参考一下。
--*******************************************************************************
-- 日期转换参数大全
--********************************************************************************
select CONVERT(varchar,getdate(),120)
--2009-03-15 15:10:02

select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
--20090315151201

select CONVERT(varchar(12) , getdate(), 111)
--2009/03/15

select CONVERT(varchar(12) , getdate(), 112)
--20090315

select CONVERT(varchar(12) , getdate(), 102)
--2009.03.15

select CONVERT(varchar(12) , getdate(), 108)
--15:13:26

其它我不常用的日期格式转换方法:

select CONVERT(varchar(12) , getdate(), 101 )
--03/15/2009

select CONVERT(varchar(12) , getdate(), 103 )
--15/03/2009

select CONVERT(varchar(12) , getdate(), 104 )
--15.03.2009

select CONVERT(varchar(12) , getdate(), 105 )
--15-03-2009

select CONVERT(varchar(12) , getdate(), 106 )
--15 03 2009

select CONVERT(varchar(12) , getdate(), 107 )
-- 15, 2009

select CONVERT(varchar(12) , getdate(), 109 )
--03 15 2009

select CONVERT(varchar(12) , getdate(), 110 )
--03-15-2009

select CONVERT(varchar(11) , getdate(), 113 )
--15 03 2009

select CONVERT(varchar(12) , getdate(), 114)
--15:15:55:717

Domain4.3(明小子)10.10.10更新版主要更新内容如下: 1.驱除部分死连接,恢复部分官方连接 2.改变默认显示页面为本人BLOG 3.修正程序在检测时出错的BUG 4.修正程序在部分系统中无法启动的BUG 5.加了一个功能模块,但还不成熟,隐藏了,高手的话可以用OD调出来!>!< 6.修复前段时间一些朋友反映的错误和程序宏 7.增加四款SKN皮肤! 10.10.11紧急更新: 1.修正新版程序在部分系统中启动后直接导致系统蓝屏的BUG 2.修正域名查询的几个错误 3.修正程序批量检测查询到域名的时候无反映的BUG! Domain4.2(明小子)10.01.16更新版主要更新内容如下: 1.删除所有无关数据 2.优化急速代码 3.改变启动线程 4.增加SQL数据批量导出功能 5.加入几个优化进程模块,非后门.后台运行. 6.锁定主程序栏目宽和高,不在恢复 7.删除“辅助工具”模块中全部代码 8.修正XP SP3 程序下兼容问题 9.重新改写域名查询旁站线程 程序于2010年01月16号调试完毕! 提别提示:第4个功能只能运行在完整版的windows XP 平台系统中,其他平台无法运行,如果出现恢复按钮并不能保存请自行调试与本程序无关.谢谢合作! 宝宝的话:有朋友们的鼓励才会有这个版本的发布,这当是我送给大家2010年里的第一个礼物吧。 Domain4.1(明小子)0901更新版主要更新内容如下: 1.增加新系统兼容模块,全面兼容2000-2008各系统 (部分精简版系统除外) 2.优化网站打开速度,删减部分无用内核信息,全面加快程序启动速度. 3.基于09.05.20号内核提升,改变搜查循环的一个死BUG! 4.删除在0520上增加的一个补针函数,并使用新的函数替换.保证不报错. 5.不在兼容xpsp3,因为没时间去修正这个错误。所以可能部分SP3系统运行不起来本程序 6.增加部分程序扩充空格代码,为下个版本更新做好铺垫 小提示:保留旧的IP反查连接系统,原因没有找到新的和稳定的IP反差服务器!如果有能提供的请与本人联系!谢谢合作 Domain4.1(明小子)0520更新版主要更新内容如下: 1.基于08.10.01号内核提升,修正一次关键错误。 2.替换原程序自带的那个小马,该为最新美化免杀版的小马! 3.添加一个服务器挂钩程序(非插件),使修改后的新内核兼容vista系统。 4.程序数据库默认名为:SetData.mdb 请大家使用3.5版本以上的MDB数据.其他低版本程序可能不兼容! 5.删除后台下载统计代码(以前没发现,本人也是从网站上面下的软件,排除作者自添加行为) 6.加了一个补针,针对sql注入功能中的一个小BUG。 7.删除了很多没有用的代码,最大限度的优化程序启动速度。 8.更新部分在xpsp3下出错的几个小BUG(小问题小解决,这个错误仅针对部分优化过度的XPSP3系统)。 提记:很多朋友说需要修改下程序IP域名查询功能,这里说明下.由于内核找不到关键句柄导致无法更新,下个版本在仔细看看! Domain4.0(明小子)1001更新版主要更新内容如下: 1.更新部分过度优化过的系统不兼容问题。 2.修改内存识别函数,使其降低软件在使用期间所占用的内存大小。 3.基于08.09.15号内核提升,修正因修改软件所出现的几个导致软件崩溃的几个BUG。 4.换了软件自带的那个垃圾皮肤。加入兼容美化皮肤!更美观! 5.兼容前版本数据库支持功能 6.去掉了没有用的PHP入侵选项和几处小BUG...... 转贴是一种美德!分享也是一种快乐,工具仅做辅助作用请勿用在非法用途上! 程序自带本BLOG连接,启动比较慢!不喜勿用!谢谢合作!

34,590

社区成员

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

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