首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在日期范围内对数据进行切片SQL Server

在日期范围内对数据进行切片SQL Server
EN

Stack Overflow用户
提问于 2018-01-04 16:36:07
回答 1查看 103关注 0票数 0

在完成一项简单的任务时,我经历了一段痛苦的时间。我想每个月每6个月切片一次数据。我没有得到任何输出。我的SQL技能非常差。我寻找了很多解决方案,他们给了我一些想法,但我不能输出任何结果。

下面是我的尝试:

代码语言:javascript
运行
AI代码解释
复制
SELECT TOP 10000 CONVERT(VARCHAR,DATEADD(HOUR,-4,DATEADD(s, ch.dateTimeOrigination, '19700101')), 121) as CallDate 
FROM [dbo].[CallData] AS ch 
WHERE LEN(ch.callingPartyNumber) = 4 AND 
CONVERT(VARCHAR,DATEADD(HOUR,-4,DATEADD(s, ch.dateTimeOrigination, '19700101')), 121) BETWEEN CONVERT(VARCHAR(10), GETDATE(), 110) AND CONVERT(VARCHAR(10), DATEADD(month, -6, GETDATE()), 110)

这个表肯定有我想要查询的时间段的数据。所以我不确定为什么这没有给我任何输出。我将非常感谢你的帮助。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-04 16:51:44

我相信你的BETWEEN值是倒退的。

编辑:WHERE子句中的CONVERT语句也是不同的格式,所以当您比较varchars时,比较会失败。您应该改用DATETIME

试试这个:

代码语言:javascript
运行
AI代码解释
复制
SELECT TOP 10000 
CONVERT(VARCHAR,DATEADD(HOUR,-4,DATEADD(s, ch.dateTimeOrigination, '19700101')), 121) as CallDate 
FROM [dbo].[CallData] AS ch 
WHERE LEN(ch.callingPartyNumber) = 4 AND 
CAST(DATEADD(HOUR,-4,DATEADD(s, ch.dateTimeOrigination, '19700101')) AS DATETIME) BETWEEN DATEADD(month, -6, GETDATE()) AND GETDATE()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48099663

复制
相关文章
在sql server里,日期字段按天数进行group by查询的方法
比如一张表里有如下时间字段的记录: 2009-01-01 12:00:00 2008-12-23 11:00:11 2009-12-22 11:22:00 2009-01-01 14:00:00 2009-12-22 12:00:09
跟着阿笨一起玩NET
2018/09/18
6.5K0
SQL Server的日期计算
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
用户8983410
2021/11/02
2.2K0
sql server 日期转换函数 convert()
--内容来自:http://hi.baidu.com/muqingz/item/8fb7b3ca8a485b0cac092f7b Select CONVERT(varchar(100), GETDATE(), 0)--: 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1)--: 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2)--: 06.05.16 Select CONVERT(
乔达摩@嘿
2020/09/11
1.4K0
SQL Server 合并多对多表的数据
今天还是发一篇老文。介绍当时我合并博客文章数据时遇到的一个问题和解决方法。我不擅长SQL,如果大家有更好的方法,欢迎在评论里留言讨论。
Edi Wang
2019/07/08
2.5K0
SQL Server 合并多对多表的数据
SQL Server各种日期计算方法
通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文 章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。  
Java架构师必看
2021/03/22
2.5K0
Sql server DATEADD日期函数的使用[通俗易懂]
DATEADD(datepart,number,date) date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
全栈程序员站长
2022/09/07
1.9K0
sql server 字符串转日期_sql server 字符串替换
提示:这里对文章进行总结: 例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
全栈程序员站长
2022/11/09
1.6K0
SQL Server生成随机日期模拟测试数据的需求
最近碰到个SQL Server跑SQL的性能问题,同样是关系型数据库,因此在原理层面,不同数据库之间有些内容是可以借鉴的,但是SQL Server一些细节上和操作层面,略有不同,需要熟悉和积累。
bisal
2022/01/25
2K0
怎样在SQL Server数据库执行sql脚本?
注意:在操作前需要先把数据库的数据进行备份,以防数据出错,导致数据库损坏!(找到数据库,右键备份,选择备份输出的位置即可。)
管家婆软件
2022/11/21
18K0
怎样在SQL Server数据库执行sql脚本?
在SQL Server里如何进行页级别的恢复
在今天的文章里我想谈下每个DBA应该知道的一个重要话题:在SQL Server里如何进行页级别还原操作。假设在SQL Server里你有一个损坏的页,你要从最近的数据库备份只还原有问题的页,而不是还原整个数据库。 我们来破坏一个页 第一步我想向你展示下如何建立表(或索引)里有个特定页损坏的情景,这里我们会进行一些魔术,因为开箱即用(out-of-box)的SQL Server本身不会引入任何损坏的页(如果有的话,恭喜你找到了一个BUG)。我们从创建一个新的数据库,往新建的表插入一些记录开始。 1 USE
逸鹏
2018/04/10
8360
在SQL Server里如何进行页级别的恢复
sql服务器系统时间格式,SQL Server 日期格式和日期操做
SQL Server发展至今,关于日期的格式的控制方法,有传统的方法,好比CONVERT(),也有比较便利的新方法,好比FORMAT();一样,关于日期的操做函数,也分为传统方法:DATEADD()等,也有便利的新方法:EOMonth()等。sql
全栈程序员站长
2022/11/03
3.7K0
SQL如何对不同表的数据进行更新
如果我们有表A和表B, 我想把我的表A的Col1内的数据更新到表B的Col1里面,那么我们怎么做呢?
繁华是客
2023/03/03
3.6K0
管理sql server表数据_sql server如何使用
表是SQL Server中最基本的数据库对象,用于存储数据的一种逻辑结构,由行和列组成, 它又称为二维表。 例如,在学生成绩管理系统中,表1–是一个学生表(student)。
全栈程序员站长
2022/09/23
1.8K0
管理sql server表数据_sql server如何使用
SQL Server 数据恢复
--创建测试数据库 CREATE DATABASE Db GO --对数据库进行备份 BACKUP DATABASE Db TO DISK='c:\db.bak' WITH FORMAT GO --创建测试表 CREATE TABLE Db.dbo.TB_test(ID int) --延时1秒钟,再进行后面的操作(这是由于SQL Server的时间精度最大为百分之三秒,不延时的话,可能会导致还原到时间点的操作失败) WAITFOR DELAY '00:00:01' GO --假设我们现在误操作删除了 Db.dbo.TB_test 这个表 DROP TABLE Db.dbo.TB_test --保存删除表的时间 SELECT dt=GETDATE() INTO # GO --在删除操作后,发现不应该删除表 Db.dbo.TB_test --下面演示了如何恢复这个误删除的表 Db.dbo.TB_test --首先,备份事务日志(使用事务日志才能还原到指定的时间点) BACKUP LOG Db TO DISK='c:\db_log.bak' WITH FORMAT GO --接下来,我们要先还原完全备份(还原日志必须在还原完全备份的基础上进行) RESTORE DATABASE Db FROM DISK='c:\db.bak' WITH REPLACE,NORECOVERY GO --将事务日志还原到删除操作前(这里的时间对应上面的删除时间,并比删除时间略早 DECLARE @dt datetime SELECT @dt=DATEADD(ms,-20,dt) FROM # --获取比表被删除的时间略早的时间 RESTORE LOG Db FROM DISK='c:\db_log.bak' WITH RECOVERY,STOPAT=@dt GO --查询一下,看表是否恢复 SELECT * FROM Db.dbo.TB_test /*--结果: ID ----------- (所影响的行数为 0 行) --*/ --测试成功 GO --最后删除我们做的测试环境 DROP DATABASE Db DROP TABLE #
_一级菜鸟
2020/08/02
1.3K0
ADO对SQL Server 2008数据库的基础操作
最近在学习ADO与数据库的相关知识,现在我将自己学到的东西整理写出来,也算是对学习的一种复习。
Masimaro
2018/08/31
8570
SQL SERVER 2016 新功能SVT 怎么进行数据清理
SQL SERVER 很有意思2016 推出一个历史版本控制的功能,这个功能的含义在于帮助数据表在操作中根据时间来进行曾经操作的记录,实际上等同于
AustinDatabases
2020/03/10
5010
SQL SERVER 2016 新功能SVT 怎么进行数据清理
sql server 字符串和日期的转换函数[通俗易懂]
字符串转换为日期: cast(‘20100514’ as datetime)
全栈程序员站长
2022/11/10
2.6K0
OL记载Arcgis Server切片
在OpenLayers中加载Arcgis Server切片用XYZ图层,Arcgis Server的切片调用地址我们可以看到如下:
牛老师讲GIS
2018/10/23
9720
OL记载Arcgis Server切片
SQL Server 数据类型
? ? ? ?
小手冰凉
2019/09/10
5740
SQL Server 数据类型
点击加载更多

相似问题

在多个日期范围内对netcdf文件进行时间切片

118

对日期范围内的pandas数据帧进行切片

21

sql server中数据范围内的连续日期

12

SQL Server中的切片数据

24

根据日期对sqlite表进行切片

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文