T-SQL日期函数
-------------------------日期时间类型--------------------------------- ---T-SQL YEAR,MONTH,DAY函数均一INT 数据类型的格式返回特定日期的年度信息. SELECT 'YEAR NUMBER' = YEAR(GETDATE()) SELECT 'YEAR NUMBER' = MONTH(GETDATE()) SELECT 'YEAR NUMBER' = DAY(GETDATE()) --获取日期时间值部分DATEPART DATEPART(DATEPART,DATE数据) --DATEPART : 特定的要返回的数据的格式代码 --date数据: 一个可以解析为TIME ,DATE ,SMALLDATETIME,DATETIME DATETIME2的值的表达式、列表达式、用户定义的变量或字符串文字 SELECT DATEPART(YEAR,GETDATE()) AS '年份1' SELECT DATEPART(YYYY,GETDATE()) AS '年份2' SELECT DATEPART(YY,GETDATE()) AS '年份3' -- 日期加法DATEADD -- DATEADD函数将某个日期加上一个特定的时间间隔值后返回 DATETIME数据类型的值 --1语法 DATEADD(DATEPART,NUMBER,DATE数据) select top 100 indate 订单日期,DATEADD(DAY,14,InDate) '相加后的日期' , * from dbo.SOMaster with(nolock) order by InDate /* 订单日期 相加后的日期 2010-09-23 00:11:59.000 2010-10-07 00:11:59.000 2010-09-23 00:12:29.000 2010-10-07 00:12:29.000 2010-09-23 00:12:57.000 2010-10-07 00:12:57.000 2010-09-23 00:21:21.000 2010-10-07 00:21:21.000 2010-09-23 00:23:57.000 2010-10-07 00:23:57.000 2010-09-23 00:27:06.000 2010-10-07 00:27:06.000 2010-09-23 00:32:11.000 2010-10-07 00:32:11.000 2010-09-23 00:47:11.000 2010-10-07 00:47:11.000 2010-09-23 00:47:33.000 2010-10-07 00:47:33.000 2010-09-23 00:48:10.000 2010-10-07 00:48:10.000 */ --日期减法 select top 10 indate 订单日期,DATEDIFF(DAY,InDate,'2010-10-10 00:00:00.000') '相减后的日期' from dbo.SOMaster with(nolock) order by InDate /* 订单日期 相减后的日期 2010-09-23 00:11:59.000 17 2010-09-23 00:12:29.000 17 2010-09-23 00:12:57.000 17 2010-09-23 00:21:21.000 17 2010-09-23 00:23:57.000 17 2010-09-23 00:27:06.000 17 2010-09-23 00:32:11.000 17 2010-09-23 00:47:11.000 17 2010-09-23 00:47:33.000 17 2010-09-23 00:48:10.000 17 */ SELECT SYSDATETIME() --获取系统时间 union all select SYSDATETIMEOFFSET() --获取当前日期和时间 --判断是否为日期数据isdate(expression) --若表达式为有效的日期数据:1 ,否则: 0 ----select ISDATE(OrderId) from ShippingOrderExtend WITH(NOLOCK) where OrderId=1019506 declare @aa int select isdate(@aa) /*************************************************************************/ --获取字符的ASCII码ASCII --ASCII码是对字符的标准编码。要获取字符的ASCII码就可以通过调用ASCII函数来实现 SET NOCOUNT ON --获取ASCII码起始位置临时变量 DECLARE @beginposition int --定义字符串变量,存储要获取ASCII码的字符串 DECLARE @TempString varchar(100) --初始化变量 SET @beginposition = 1 SET @TempString = 'dancewithwave@163.com' --对字符串中的每个字符循环执行ASCII函数 WHILE @beginposition < = DATALENGTH(@TempString) BEGIN SELECT ASCII ( SUBSTRING ( @TempString , @beginposition , 1 ) ), CHAR( ASCII ( SUBSTRING ( @TempString , @beginposition , 1 ) )) SET @beginposition = @beginposition + 1 END SET NOCOUNT OFF GO
--摘自<T-SQL管理与开发实例精粹>