每日总结:sql 转换为int时发生算术溢出错误、DatePart()、DateAdd()、DateDiff()函数、Case when then
Posted on 2013-03-25 22:15 星星之火116 阅读(1270) 评论(0) 编辑 收藏 举报1、将 expression 转换为数据类型 int 时发生算术溢出错误
解析:
这个问题的出现是因为数据超大而引起的,为解决这个问题,只需要将将其转换为比int型存储范围更大的数据类型即可,这里可以将其转换为18位的2位精度的小数即可,如下:
Cast(字段 as decimal(18,2))
1、 Datepart()函数
该SQL函数主要用来获用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
语法:DATEPART(datepart,date)
date 参数是合法的日期表达式。datepart 参数可以是下列的值:
datepart |
缩写 |
年 |
yy, yyyy |
季度 |
qq, q |
月 |
mm, m |
年中的日 |
dy, y |
日 |
dd, d |
周 |
wk, ww |
星期 |
dw, w |
小时 |
hh |
分钟 |
mi, n |
秒 |
ss, s |
毫秒 |
ms |
微妙 |
mcs |
纳秒 |
ns |
此外还有DATEADD() 函数
在日期中添加或减去指定的时间间隔。
语法
DATEADD(datepart,number,date)
date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
dateadd 参数值和datepart函数的参数值一样
DATEDIFF() 函数
返回两个日期之间的天数。
语法:
DATEDIFF(datepart,startdate,enddate)
startdate 和 enddate 参数是合法的日期表达式。
Depart参数值和datepart函数的参数值一样
2、 SQL Case when then
Case具有两种格式:
1) Case sex
When ‘0’ then ‘女’
When ‘1’ then ‘男’
Else ‘未知’ end
2) Case when sex=’0’ then ‘女’
When sex=’1’ then ‘男’
Else ‘未知’ end
这两种方法基本上功能都差不多,相对来讲第一种方法比较简洁,但是第二中方法比较灵活,可以进行复杂的判断
Case when then 方法多用于多条件判断,比较常用的就像上边的例子,数据库中存0或1 来表示男女,在查询展示的时候使用case when then即可实现该效果、