在做Sql Server开发的时候有时需要获取表中今天、昨天、本周、上周、本月、上月等数据,这时候就需要使用DATEDIFF()函数及GetDate()函数了。 DATEDIFF ( datepart , startdate , enddate ) 释义:计算时间差 datepare值:year | quarter | month | week | day | hour | minute | second | millisecond startdate:开始日期 enddate :结束日期 GetDate() 释义:获取当前的系统日期
下面例子中表名为tablename,条件字段名为inputdate 查询今天
SELECT * FROM tablename where DATEDIFF(day,inputdate,GETDATE())=0 查询昨天
SELECT * FROM tablename where DATEDIFF(day,inputdate,GETDATE())=1 查询本周
SELECT * FROM tablename where datediff(week,inputdate,getdate())=0 查询上周
SELECT * FROM tablename where datediff(week,inputdate,getdate())=1 查询本月
SELECT * FROM tablename where DATEDIFF(month,inputdate,GETDATE())=0 查询上月
SELECT * FROM tablename where DATEDIFF(month,inputdate,GETDATE())=1
转载地址: http://www.devdo.net/sql-server-query-date.html
Sql Server中查询今天、昨天、本周、上周、本月、上月数据
时间: 2024-10-21 08:41:52
Sql Server中查询今天、昨天、本周、上周、本月、上月数据的相关文章
在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题
原文:在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题 SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\KK.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 问题: 消息 15281,级别 16,状态 1,第 1 行 SQL Server 阻止了对组件 'Ad Hoc Di
SQL Server中查询用户的对象权限和角色的方法
--SQL Server中查询用户的对象权限和角色的方法 -- 查询用户的object权限 exec sp_helprotect NULL, 'sa' -- 查询用户拥有的role exec sp_helpuser 'public' -- 查询哪些用户拥有指定的系统role exec sp_helpsrvrolemember 'sysadmin' -- 可查询嵌套role WITH tree_roles as ( SELECT role_principal_id, member_principa
【SQL Server数据迁移】64位的机器:SQL Server中查询ORACLE的数据
从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 .64位的机器和软件,需要用不同的驱动程序来实现. 在64位的机器上,通过访问接口:OracleProvide for OLE DB,来实现. 1.机器环境和软件环境 操作系统是:windows 7旗舰版 64位,SQL Server 20008R2 64 位,Oracle 11g 11.2.0.1.0 64 位. 2.ORACLE环境的设置 连接orac
【转载】SQL Server中查询CPU占用高的SQL语句
本文导读:触发器造成死锁.作业多且频繁.中间表的大量使用.游标的大量使用.索引的设计不合理.事务操作频繁.SQL语句设计不合理,都会造成查询效率低下.影响服务器性能的发挥.我们可以使用sql server自带的性能分析追踪工具sql profiler分析数据库设计所产生问题的来源,进行有针对性的处理:下面介绍SQL Server中如何查询CPU占用高的SQL语句 SQL Server中查询CPU占用高的情况,会用到sys.sysprocesses ,dm_exec_sessions ,dm_ex
SQL Server中如何定位Row Lock锁定哪一行数据
在SQL Server中有时候会使用提示(Hint)强制SQL使用行锁(Row Lock),前两天有个同事咨询了一个问题,如何定位Row Lock具体锁定了哪一行.其实这个问题只适合研究一下,实际意义并不大,因为找到.定位被锁定的行的代价开销较大,而意义却不怎么大,而且使用场景也很少.那么下面我们来探讨.研究一下这个问题吧: 在会话窗口(会话ID=65)下执行下面SQL语句,模拟SQL Server使用行锁锁定某一行记录: USE AdventureWorks2012; GO SELECT
Sql Server中查询当天,最近三天,本周,本月,最近一个月,本季度的数据的sql语句
当天: select * from T_news where datediff(day,addtime,getdate())=0 最近三天: select * from T_news where datediff(day,addtime,getdate())<= 2 and datediff(day,addtime,getdate())>= 0 本周: select * from T_news WHERE (DATEPART(wk, addtime) = DATEPART(wk, GETDAT
SQL SERVER中查询参数为空(null)时默认查询所有的实现
最近在项目中碰到一个比较有意思的问题,网上查找了一些方法,在这里总结分享一下. 我们经常会碰到这样的场景:需要查询数据,有一些查询条件,但是查询的时候,我们希望在某个条件为空的时候,则不筛选这个条件,处理的思路主要有这么几种: 1.程序收集查询查询条件的时候处理,这种适合动态SQL的,拼接SQL的时候根据参数是否为空来决定是否拼接对应的查询条件. 2.SQL中处理,这种情况适合存储过程,参数固定的场景,或者是非拼接where条件的场景,存储过程中一般没有使用拼接SQL的方式,那么如何实现参数为n
SQL Server中查询结果拼接遇到的小问题
前天的项目,刚接手,对于模块还不是很熟悉,其中有一个模块,涉及到4个表,其中主要的表就有两个,只要把这个弄清楚了就一切回归于"太平"了. 模块要求:把两个表的内容查询出来,结果连接在一起.大师说完,感觉没有什么问题,自己就看了下数据库表的设计,看完后,发现两张表中的主键完全可以相同啊! 项目不仅设计到读出来,还要根据主键把对应的所有数据都读出,这一下让我感觉很头疼,.想想以前老师曾说过,在万不得已的时候不要用UNION或者UNION ALL,这会大大降低性能的. 于是就和大师商量能不能
Sql Server 中查询存储过程的修改时间
1.按最近修改排序所有存储过程 SELECT [name], [create_date], [modify_date] FROM [sys].[objects] WHERE [type] = 'P' -- 这里也可以替换为:'U','IF','TR'分别代表用户表,自定义函数,触发器 ORDER BY [modify_date] DESC 2.查询指定存储过程的创建及修改时间 select [name] ,create_date ,modify_date FROM sys.all_objects