T-SQL 日期常用函数

/*

Environment: win7 + sql server 2008 r2
Author: CC
Desctiption:
常用日期函数整理:
DAY,MONTH,YEAR , DATEPART
DATEADD,DATENAME ,
DATEDIFF ,isdate 的使用
*/

–截取一个时间的年,月,日
select DAY(GETDATE())
,MONTH(GETDATE()) –MONTH() 函数的参数为整数时,一律返回整数值1,即SQL Server 认为其是1900 年1 月。
,YEAR(GETDATE()) –其日期值应在1753年到9999年之间,这是SQL Server系统所能识别的日期范围,否则会出现错误。
–运用DATEPART函数
UNION ALL
SELECT DATEPART(DAY , GETDATE())
,DATEPART(MONTH , GETDATE())
,DATEPART(YEAR , GETDATE())
/*
(无列名) (无列名) (无列名)
7 2012
7 2012
*/

SELECT DATENAME (DD,GETDATE()) –返回类型为字符型
/* (无列名)
*/

–用 dateadd 来获得下一个时间或之前的时间日期

select DATEADD (DD , 1 , getdate()) –当前时间的下一天
, DATEADD (MM , 1 , getdate()) –当前时间的下一个月
, DATEADD (YY , 1 , getdate()) –当前时间的下一年
, DATEADD (DD , -1 , getdate()) –当前时间的前一天
, DATEADD (MM , -1 , getdate()) –当前时间的前一个月
, DATEADD (YY , -1 , getdate()) –当前时间的前一年

–2012-07-18 15:47:05.663 2012-08-17 15:47:05.663 2013-07-17 15:47:05.663 2012-07-16 15:47:05.663 2012-06-17 15:47:05.663 2011-07-17 15:47:05.663

SELECT DATEDIFF(DD,’2012-07-11 15:03:11.623’,GETDATE()) –时间差
–6

SELECT DATENAME(dayofyear,GETDATE()) ,DATEDIFF(dd,’2012-01-01’,getdate())
–199 198

SELECT DATENAME(year, GETDATE())
,DATENAME(month, GETDATE())
,DATENAME(day, GETDATE())
,DATENAME(week,GETDATE())
,DATENAME(dayofyear, GETDATE())
,DATENAME(weekday, GETDATE());
–2012 July 17 29 199 Tuesday

SELECT DATENAME(hour, GETDATE()) –当天的第几个小时
,DATENAME(minute,GETDATE()) –当天小时的第几分
,DATENAME(second, GETDATE()); –当天小时分钟的第几秒
—15 48 9

SELECT ISDATE(‘2012-07-17’) UNION ALL
SELECT ISDATE(‘2012-07-17 15:12:00’) UNION ALL
SELECT ISDATE(111)
/*
1
*/

/*
函数 语法 返回值 返回数据类型
DAY DAY ( date ) 返回表示指定 date 的“日”部分的整数。 int 具有确定性
MONTH MONTH ( date ) 返回表示指定 date 的“月”部分的整数。 int 具有确定性
YEAR YEAR ( date ) 返回表示指定 date 的“年”部分的整数。 int 具有确定性
DATENAME DATENAME ( datepart , date ) 返回表示指定日期的指定 datepart 的字符串。 nvarchar
DATEPART DATEPART ( datepart , date ) 返回表示指定 date 的指定 datepart 的整数。 int
DATEDIFF DATEDIFF ( datepart , startdate , enddate ) 返回两个指定日期之间所跨的日期或时间 datepart 边界的数目。 int 具有确定性
DATEADD DATEADD (datepart , number , date ) 通过将一个时间间隔与指定 date 的指定 datepart 相加,返回一个新的 datetime 值。

ISDATE ISDATE ( expression ) 确定 datetime 或 smalldatetime 输入表达式是否为有效的日期或时间值。
int 只有与 CONVERT 函数一起使用,同时指定了 CONVERT 样式参数且样式不等于 0、100、9 或 109 时,ISDATE 才是确定的。
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值