当前位置:  数据库>sqlserver

sql server日期函数及使用技巧

    来源: 互联网  发布时间:2014-08-29

    本文导语:  一、获得当月天数:select day(dateadd(mm,1,getdate())-day(getdate()))   分析如下:   代码如下: select getdate()  --当前日期   select day(getdate()) --目前第几天   select getdate()-day(getdate())   --上个月最后一天   select dateadd(mm,1,getdate())-day(get...

一、获得当月天数:select day(dateadd(mm,1,getdate())-day(getdate()))
  分析如下:
 

代码如下:
select getdate()  --当前日期
  select day(getdate()) --目前第几天
  select getdate()-day(getdate())   --上个月最后一天
  select dateadd(mm,1,getdate())-day(getdate())  --加上一个月
  select day(dateadd(mm,1,getdate())-day(getdate())) --获得当月天数

二、一个月第一天:
 

代码如下:
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)

思路:计算当前的时间和“1900-01-01”之间的时间间隔数量,然后把它加到“1900-01-01”的时间间隔上来计算出日期。

七、上个月的最后一天 :
 

代码如下:
SELECT  dateadd(ms,-3,DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0))

说明:通过从一个月的最后一天这个例子上减去3毫秒来获得。有一点要记住,在Sql  Server中时间是精确到3毫秒。这就是为什么我需要减去3毫秒来获得我要的日期和时间。 

八、去年的最后一天:
 

代码如下:
SELECT  dateadd(ms,-3,DATEADD(yy,  DATEDIFF(yy,0,getdate()),  0))

说明:为了要得到去年的最后一天,你需要在今年的第一天上减去3毫秒。

九、本月的最后一天:
 

代码如下:
SELECT  dateadd(ms,-3,DATEADD(mm,  DATEDIFF(m,0,getdate())+1,  0))

说明:用DATEDIFF比较当前日期和“1900-01-01”返回的时间间隔上加1。通过加1个月,计算出下个月的第一天,然后减去3毫秒,这样就计算出了这个月的最后一天。        

十、本年的最后一天 :
 

代码如下:
SELECT  dateadd(ms,-3,DATEADD(yy,  DATEDIFF(yy,0,getdate())+1,  0

十一、本月的第一个星期一 :
 

代码如下:
select  DATEADD(wk,  DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate()) ),  0)

说明:在计算中用本月的第6天来替换当前日期使得计算可以获得这个月的第一个星期一。  

十二、其他日期处理方法  
1)去掉时分秒
 

代码如下:
declare  @  datetime
set  @  =  getdate()  --'2009-5-24  10:00:00'
SELECT  @,DATEADD(day,  DATEDIFF(day,0,@),  0)

2)显示星期几
 

代码如下:
select  datename(weekday,getdate())

3)如何取得某个月的天数
 

代码如下:

declare  @m  int
set  @m=5  --月份
select    datediff(day,'2009-'+cast(@m  as  varchar)+'-15'  ,'2009-'+cast(@m+1    as  varchar)+'-15')

---另外,取得本月天数
select    datediff(day,cast(month(GetDate())  as  varchar)+'-'+cast(month(GetDate())  as  varchar)+'-15'  ,cast(month(GetDate())  as  varchar)+'-'+cast(month(GetDate())+1    as  varchar)+'-15')
---或者使用计算本月的最后一天的脚本,然后用DAY函数区最后一天
SELECT  Day(dateadd(ms,-3,DATEADD(mm,  DATEDIFF(m,0,getdate())+1,  0)))

4)判断是否闰年:
 

代码如下:
SELECT  case  day(dateadd(mm,  2,  dateadd(ms,-3,DATEADD(yy,  DATEDIFF(yy,0,getdate()),  0))))  when  28  then  '平年'  else  '闰年'  end
---或者
select  case  datediff(day,datename(year,getdate())+'-02-01',dateadd(mm,1,datename(year,getdate())+'-02-01'))
when  28  then  '平年'  else  '闰年'  end

5)一个季度多少天
 

代码如下:
declare  @m  tinyint,@time  smalldatetime
select  @m=month(getdate())
select  @m=case  when  @m  between  1  and  3  then  1
                 when  @m  between  4  and  6  then  4
                 when  @m  between  7  and  9  then  7
                 else  10  end
select  @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'
select  datediff(day,@time,dateadd(mm,3,@time))

6)只显示时间的年-月-日
 

代码如下:
convert(varchar(10),getDate(),120)

    
 
 

您可能感兴趣的文章:

  • ORACLE SQL-UPDATE、DELETE、INSERT优化和使用技巧分享
  • SQL集合函数中case when then 使用技巧
  • PL/SQL DEVELOPER 使用的一些技巧
  • 在SQL中有函数,比如COUNT(*),怎样通过JDBC调用获得函数值????
  • SQL中含函数,比如COUNT(*),怎样在JDBC接口中取出函数值????
  • sql server中ISNULL函数与Mysql中IFNULL函数的用法
  • 移动开发 iis7站长之家
  • T-SQL常用的聚合函数
  • sql server中自定义一个简单的 split 函数
  • 初学者问题:标准的sql里有处理日期的函数吗?
  • access与sql server几个常用函数的区别(图文)
  • 分享:sql server 取日期的年月日部分的函数
  • sql函数实现递归查询示例
  • T-SQL常用的数学函数
  • T-SQL实例 函数结果设置为列别名
  • SQL Server中的数据复制到的Access中的函数
  • C处理SQL命令字符串的函数哪里有?
  • SQL中函数 replace 的参数1的数据类型ntext无效的解决方法
  • SQL中有count这个函数,请问如何将这个值取出
  • 高分求java.sql类库的类说明,函数及方法!
  • php is_numberic函数产生sql注入漏洞怎么解决
  • sql函数CAST与CONVERT的区别
  • SQL的SUBSTR()函数使用介绍
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何将java.util.Date类型的日期转换成java.sql.Date类型的日期?
  • SQL日期查询与比较方法
  • sql server日期相减 的实现详解
  • jsp中在oracle中查询日期类型时sql语句该怎么写啊?
  • sql server日期格式化处理的例子
  • 拼接SQL字符串与日期模糊查询的例子
  • sql语句中,怎样进行两个日期的时间差,用秒数表示??
  • T-SQL常用的时间和日期函数
  • sql语句中如何将datetime格式的日期转换为yy-mm-dd格式
  • SQL Server 比较日期大小的方法
  • SQL 返回期间内的所有日期
  • T-SQL判断一个日期是否为今天的函数
  • SQL学习笔记七函数 数字,日期,类型转换,空值处理,case
  • sql日期格式转换方法汇总(常用)
  • T-SQL自定义函数返回前一天或后一天日期的例子
  • sql server 日期推算处理的例子
  • sql server中获取指定日期所在月份的第一天的代码
  • 有关java.sql.ResultSet 利用SetDate往 oracle 中插入时间和日期的问题!!
  • SQL 判断给定日期值(或时间段)所在星期的星期一和星期天的日期
  • 在Java中,用Mircosoft SQL Server数据库,请问要进行日期字段的读取,用( ResultSet rs ; rs.getDate(1),其中1代表相应的字段为 DateTi
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3