Sql 本周当天本期日期转换

摘要:
如果结果超出整数值范围,则DATEDIFF将产生错误。对于毫秒,最大数是24天20小时31分钟零23.647秒。--本月记录SELECT*FROM表WHEREdatediff=0--本周记录SELECT*FROM表WHEREdatediff=0--包括本年这些查询方式是一样的--本月记录SELECT*FROM表WHEREdatediff=0--本周记录SELECT*FROM表WHEREdatediff=0--包括本年这些查询方式是一样的sqlserver中的时间函数1.当前系统日期、时间selectgetdate()2.dateadd在向指定日期加上一段时间的基础上,返回新的datetime值例如:向日期加上2天selectdateadd--返回:2004-10-1700:00:00.0003.datediff返回跨两个指定日期的日期和时间边界数。
--查询当天:    
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 将产生错误。对于毫秒,最大数是 2420 小时 31 分钟零 23.647 秒。对于秒,最大数是 68年。
跨分钟、秒和毫秒等边界计算的方法使得 DATEDIFF 指定的结果在所有数据类型中均一致。结果是带正负号的整数值,它等于跨第一个和第二个日期间的 datepart 边界数。例如,在 14 日(星期日)和 111 日(星期日)之间的星期数是 1--本月记录     
SELECT * FROMWHERE datediff(month,[dateadd],getdate())=0      
--本周记录      
SELECT * FROMWHERE datediff(week,[dateadd],getdate())=0      
--包括本年这些查询方式是一样的    
--本月记录  
SELECT * FROMWHERE datediff(month,[dateadd],getdate())=0  
--本周记录  
SELECT * FROMWHERE 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')返回值为 514592DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为 53.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(*)   fromsyscolumns  
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 本周当天本期日期转换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇(转)tomcat进程意外退出的问题分析react组件间的传值方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[心得体会]mysql复习

1. 进入企业需要注意的事情(1) 查看测试服和本地的mysql版本是否一致(2) 确认sql_mode是否和线上版本一致 showVARIABLESLIKE'sql_mode'; (3) mysql sql_mode 常用设置详解: ONLY_FULL_GROUP_BY: 对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY...

SQLServer 的存储过程与java交互

一、   存储过程简介 Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户声明的变量、条件执行和其他强大的编程功能。 存储过程相对于其他的数据库访问方法有以下的优点:    (1)重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。     (2)...

Sql Server的艺术(七) SQL 数据插入操作

--用INSERT插入单行数据    在SQL中,可以通过INSERT...VALUES语句直接向数据库表中插入数据。可以整行,也可以部分列。 基本语法: INSERT INTO table_name [column1,column2...] VALUES (values1,values2...

三、五种IO模型透彻分析

三、五种IO模型透彻分析原文转载:https://www.cnblogs.com/f-ck-need-u/p/7624733.html 1、基础 在引入IO模型前,先对io等待时某一段数据的"经历"做一番解释。如图: 当某个程序或已存在的进程/线程(后文将不加区分的只认为是进程)需要某段数据时,它只能在用户空间中属于它自己的内存中访问、修改,这段内存暂且...

SQl Server Tsql基本编程 ,循环语句 ,存储过程

一些比较重要但是不一定经常用的 句子 Tsql定义变量 declare @a int ; 定义的变量前面必须用@,数据类型是SQL里的数据类型,执行的时候要把需要的有关联的代码一起执行,单独执行一条没有用。 赋值 set @a=‘aaa’; select @a=‘aaa’; 这两种都可以进行赋值, select @a 可以直接打印出a的值。 print@a...

Mybatis

JDBCJDBC相关概念 JAVA程序都是通过JDBC连接数据库的,通过SQL对数据库编程,JDBC是由SUN公司提出的一些列规范,只定义了接口规范,具体实现由各个数据库厂商去实现,它是一种典型的桥接模式。 桥接模式是一种结构型设计模式,它的主要特点是把抽象与行为实现分离开来,分别定义接口,可以保持各部分的独立性以及应对他们的功能扩展。 JDBC规范...