日期和时间函数
函数名称 | 参数 | 示例 | 说明 |
dateadd | (日期部分,数字,日期) | select dateadd(year,45,'1990-12-11') 返回 2035-12-11 00:00:00.000 select dateadd(month,45,'1990-12-11') 返回1994-09-11 00:00:00.000 select dateadd(mm,45,'1990-12-11') 返回1994-09-11 00:00:00.000 select dateadd(qq,12,'1990-12-11') 返回1993-12-11 00:00:00.000 select dateadd(hh,12,'1990-12-11') 返回1990-12-11 12:00:00.000 select dateadd(yy,-12,'1990-12-11') 返回1978-12-11 00:00:00.000 | 返回给指定日期加上一个时间间隔后的新的日期值。 数字:用于与指定的日期部分相加的值。如果指定了非整数值,则将舍弃该值的小数部分,舍弃时不遵循四舍五入。 日期:指定的原日期 在此函数中 dw,dy,dd效果一样都表示天 |
datediff | (日期部分,开始日期,结束日期) | select datediff(yy,'1990-12-11','2008-9-10') 返回 18 select datediff(mm,'2007-12-11','2008-9-10') 返回 9 | 返回两个指定日期的指定日期部分的差的整数值。 在计算时由结束日期减去开始日期 在此函数中 dw,dy,dd效果一样都表示天 |
datename | (日期部分,日期) | select datename(mm,'2007-12-11')返回12 select datename(dw,'2007-12-11')返回星期二 select datename(dd, '2007-12-11')返回11 | 返回表示指定日期的指定日期部分的字符串。 dw表示一星期中星期几,wk表示一年中的第几个星期 dy表示一年中的第几天 |
datepart | (日期部分,日期) | select datepart(mm,'2007-12-11')返回12 select datepart(dw,'2007-12-11')返回3 select datepart(dd, '2007-12-11')返回11 | 返回表示指定日期的指定日期部分的整数。 wk表示一年中的第几个星期 dy表示一年中的第几天, dw表示一星期中星期几,返回整数默认1为星期天 |
getdate | 无参数 | select getdate() 返回2009-04-28 18:57:24.153 | 返回当前系统日期和时间。 |
day | (日期) | select day('2007-12-11')返回11 | 返回一个整数,表示指定日期的天的部分。 等价于datepart(dd, 日期) |
month | (日期) | select month('2007-12-11')返回12 | 返回一个整数,表示指定日期的月的部分。 等价于datepart(mm, 日期) |
year | (日期) | select year('2007-12-11')返回2007 | 返回一个整数,表示指定日期的年的部分。 等价于datepart(yy, 日期) |
getutcdate | 无参数 | select getutcdate() 返回2009-04-28 10:57:24.153 | 返回表示当前的 UTC(世界标准时间)时间。即格林尼治时间(GMT) |
日期部分(指定要返回新值的日期的组成部分。下表列出了 Microsoft SQL Server 2005 可识别的日期部分及其缩写。)
日期部分 | 含义 | 缩写 |
year | 年 | yy, yyyy |
quarter | 季 | qq, q |
month | 月 | mm, m |
dayofyear | 天(请看函数中的说明) | dy, y |
day | 天(请看函数中的说明) | dd, d |
week | 星期 | wk, ww |
weekday | 天(请看函数中的说明) | dw, w |
hour | 小时 | hh |
minute | 分钟 | mi, n |
second | 秒 | ss, s |
millisecond | 毫秒 | ms |
1.字符串函数
长度与分析用
datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格
substring(expression,start,length) 不多说了,取子串
right(char_expr,int_expr) 返回字符串右边int_expr个字符
字符操作类
upper(char_expr) 转为大写
lower(char_expr) 转为小写
space(int_expr) 生成int_expr个空格
replicate(char_expr,int_expr)复制字符串int_expr次
reverse(char_expr) 反转字符串
stuff(char_expr1,start,length,char_expr2) 将字符串char_expr1中的从
start开始的length个字符用char_expr2代替
ltrim(char_expr) rtrim(char_expr) 取掉空格
ascii(char) char(ascii) 两函数对应,取ascii码,根据ascii吗取字符
字符串查找
charindex(char_expr,expression) 返回char_expr的起始位置
patindex("%pattern%",expression) 返回指定模式的起始位置,否则为0
2.数学函数
abs(numeric_expr) 求绝对值
ceiling(numeric_expr) 取大于等于指定值的最小整数
exp(float_expr) 取指数
floor(numeric_expr) 小于等于指定值得最大整数
pi() 3.1415926.........
power(numeric_expr,power) 返回power次方
rand([int_expr]) 随机数产生器
round(numeric_expr,int_expr) 安int_expr规定的精度四舍五入
sign(int_expr) 根据正数,0,负数,,返回+1,0,-1
sqrt(float_expr) 平方根
3.日期函数
getdate() 返回日期
datename(datepart,date_expr) 返回名称如 June
datepart(datepart,date_expr) 取日期一部份
datediff(datepart,date_expr1.dateexpr2) 日期差
dateadd(datepart,number,date_expr) 返回日期加上 number
上述函数中datepart的
写法 取值和意义
yy 1753-9999 年份
qq 1-4 刻
mm 1-12 月
dy 1-366 日
dd 1-31 日
wk 1-54 周
dw 1-7 周几
hh 0-23 小时
mi 0-59 分钟
ss 0-59 秒
ms 0-999 毫秒
日期转换
convert()
4.系统函数
suser_name() 用户登录名
user_name() 用户在数据库中的名字
user 用户在数据库中的名字
show_role() 对当前用户起作用的规则
db_name() 数据库名
object_name(obj_id) 数据库对象名
col_name(obj_id,col_id) 列名
col_length(objname,colname) 列长度
valid_name(char_expr) 是否是有效标识符