Sql 查询当天、本周、本月记录
--查询当天:
- select * from info where DateDiff(dd,datetime,getdate())=0
--查询24小时内的:
- select * from info where DateDiff(hh,datetime,getDate())<=24
--info为表名,datetime为数据库中的字段值
--查询当天:
- select * from table where DateDiff(dd,datetime,getdate())=0 --查询24小时内的: select * from table where DateDiff(hh,datetime,getDate())<=24
--table 为表名,datetime为数据库中的字段值
DATEDIFF 函数:
语法:
- select * from table where DateDiff(dd,datetime,getdate())=0 --查询24小时内的: select * from table where DateDiff(hh,datetime,getDate())<=24
备注:
enddate 减去 startdate。如果 startdate 晚于 enddate,则返回负值。
如果结果超出整数值范围,则 DATEDIFF 将产生错误。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23.647 秒。对于秒,最大数是 68 年。
跨分钟、秒和毫秒等边界计算的方法使得 DATEDIFF 指定的结果在所有数据类型中均一致。结果是带正负号的整数值,它等于跨第一个和第二个日期间的 datepart 边界数。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之间的星期数是 1。
- --本月记录
- SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0
- --本周记录
- SELECT * FROM 表 WHERE datediff(week,[dateadd],getdate())=0
--包括本年这些查询方式是一样的
- --本月记录
- SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0
- --本周记录
- SELECT * FROM 表 WHERE datediff(week,[dateadd],getdate())=0
--包括本年这些查询方式是一样的
sql server中的时间函数
1. 当前系统日期、时间
- select getdate()
2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
例如:向日期加上2天
- select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000
3. datediff 返回跨两个指定日期的日期和时间边界数。
- select datediff(day,'2004-09-01','2004-09-18') --返回:17
4. datepart 返回代表指定日期的指定日期部分的整数。
- SELECT DATEPART(month, '2004-10-15') --返回 10
5. datename 返回代表指定日期的指定日期部分的字符串
- SELECT datename(weekday, '2004-10-15') --返回:星期五
6. day(), month(),year() --可以与datepart对照一下
- select 当前日期=convert(varchar(10),getdate(),120),当前时间=convert(varchar(8),getdate(),114)
- select datename(dw,'2004-10-15')
- select 本年第多少周=datename(week,'2004-10-15')
- ,今天是周几=datename(weekday,'2004-10-15')
函数 参数/功能
GetDate( ) 返回系统目前的日期与时间
DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期
DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值
DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称
参数 interval的设定值如下:
值 缩 写(Sql Server) Access 和 ASP 说明
Year Yy yyyy 年 1753 ~ 9999
Quarter Qq q 季 1 ~ 4
Month Mm m 月1 ~ 12
Day of year Dy y 一年的日数,一年中的第几日 1-366
Day Dd d 日,1-31
Weekday Dw w 一周的日数,一周中的第几日 1-7
Week Wk ww 周,一年中的第几周 0 ~ 51
Hour Hh h 时0 ~ 23
Minute Mi n 分钟0 ~ 59
Second Ss s 秒 0 ~ 59
Millisecond Ms - 毫秒 0 ~ 999
access 和 asp 中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,这些函数的用法也类似
举例:
1.GetDate() 用于sql server :select GetDate()
2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值为 514592 秒
DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为 5 天
3.DatePart('w','2005-7-25 22:56:32')返回值为 2 即星期一(周日为1,周六为7)
DatePart('d','2005-7-25 22:56:32')返回值为 25即25号
DatePart('y','2005-7-25 22:56:32')返回值为 206即这一年中第206天
DatePart('yyyy','2005-7-25 22:56:32')返回值为 2005即2005年
判断表存在不存在:
- select count(*) from sysobjects where type='U' and name='你的表名'
判断字段存在不存在:
- select count(*) from syscolumns
- where id = (select id from sysobjects where type='U' and name='你的表名')
- and name = '你要判断的字段名'
//SQL当前日期获取技巧
一个月第一天的SQL 脚本:
- SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
本周的星期一
- SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
一年的第一天
- SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
季度的第一天
- SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
当天的半夜
- SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
上个月的最后一天
- SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
去年的最后一天
Sql 查询当天、本周、本月记录相关推荐
- Sql语句查询当天本周本月记录的where条件
[sql] view plaincopy –查询当天: select * from info where DateDiff(dd,datetime,getdate())=0 –查询24小时内的: se ...
- oracle以10个记录为一页查询,SQL查询前10条记录(SqlServermysqloracle)语法分析
SQL查询前10条记录(SqlServer/mysql/oracle)语法分析 Sql Server : Sql代码 select top X * from table_name --查询前X条记录, ...
- oracle取本月最后一天是星期几_oracle SQL语句取本周本月本年的数据
--国内从周一到周日 国外是周日到周六 select to_char(sysdate-1,'D') from dual;--取国内的星期几 去掉减一取国外的星期 --取本周时间内的数据 select ...
- Oracle+sql+取年度,oracle SQL语句取本周本月本年的数据
--国内从周一到周日 国外是周日到周六 select to_char(sysdate-1,'D') from dual;--取国内的星期几 去掉减一取国外的星期 --取本周时间内的数据 select ...
- SQL查询前10条记录(SqlServer/mysql/oracle)[语法分析]
Sql Server : Sql代码 select top X * from table_name --查询前X条记录,可以改成需要的数字. select top n * from (select t ...
- [SQL]查询及删除重复记录的SQL语句
一:查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (sel ...
- sql查询今天,本月,今年的语句
今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select * from 表名 where ...
- sql查询当天、本周,本月,上一个月的数据
今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...
- sql查询当天交易总额最大的用户信息_如何分析交易记录? 因为后面要分析“每种类型用户的总交易金额”,所以保留左表(用户交易记录表)中的全部用户数据。 【题目】 某商场为了分析用... - 雪球...
来源:雪球App,作者: 猴子数据分析,(https://xueqiu.com/1350621016/159703178) 因为后面要分析"每种类型用户的总交易金额",所以保留左表 ...
最新文章
- 上海交大c语言第一次作业,上海交大网络学院-计算机第一次作业及答案(含6次机会全部题目)-计算机基础的知识.docx...
- Zookeeper的数据模型
- CNCF 2019 年度报告重磅发布 | 云原生生态周报 Vol. 41
- 2015年第六届蓝桥杯C/C++ B组国赛 —— 第一题:积分之迷
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1061:求整数的和与均值
- sourcetree 拉取 一直让输入密码
- maven jpa_使用Hibernate 4,JPA和Maven的架构创建脚本
- tkinter中鼠标与键盘事件
- PHP使用MySQL数据库
- 20200721每日一句
- LeetCode114--词典中最长的单词、最短补全词、宝石与石头
- 图片识别不了小程序怎么办_图片转文字【小程序】
- cannot load facet kotlin
- XJTU 算法设计与问题求解作业题 第一周
- 下一个十年:数据信仰与认知智能
- ThinkPad S5 升级安装Windows10后 连上网络后系统假死
- NYOJ-845-无主之地1-2013年11月3日00:08:18
- WIN10 开启SFTP FTP FTPS配置
- jquery $.each(data, function (index, value) {
- C语言链表课程设计(工资管理系统)
热门文章
- Java SSH 资料总结
- Vue2.0 入门 安装Vue-cli
- 简易zlib库解压缩函数封装
- opencv连通域去除小块面积_晋中市建成区面积排名,榆次区最大,榆社县最小,来了解一下?...
- 假设一个随机性和因果性的双重态
- 学习对象对神经网络迭代次数的影响
- 机器学习中的评价指标--1[F,P,R]
- TensorFlow 资源汇集
- 【控制】《多无人机协同控制技术》周伟老师-第2章-多无人机协同控制体系结构
- 4.11 一维到三维推广-深度学习第四课《卷积神经网络》-Stanford吴恩达教授