[小结]SQL相关技巧

4 篇文章 0 订阅

1. SQL中时间相关计算方法

 

计算时间的函数中有,年(yy),季(q),月(m),周(ww),时期(w),天(d),时(hh),分(n),秒(s)

getdate():返回当前日期

--------------------------------------------------------

 当前日期 select CONVERT(varchar(10), getdate(), 120)
一个月第一天的SQL 脚本: 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)
上个月的最后一天 SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
去年的最后一天 SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
本月的最后一天 SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
本年的最后一天 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)

-------------------------------------------------------

获取当前月份的天数:

select datediff(d,getdate(),dateadd(m,1,getdate()))

获取当前年,季,月,周,天,时,分,秒:

select datepart(yy,getdate()) //年
select datepart(q,getdate()) //季
select datepart(m,getdate()) //月
select datepart(ww,getdate())//周
select datepart(w,getdate()) //星期,从0开始.
select datepart(d,getdate()) //天
select datepart(hh,getdate())//时
select datepart(n,getdate()) //分
select datepart(s,getdate()) //秒

获取当前天的前后五天日期:

select dateadd(dd,5,getdate())
select dateadd(dd,-5,getdate())

获取当前日期与目标日期相差的年,月,周,日,时,分,秒:

select datediff(yy,'2005-01-01 14:12:01',getdate())
select datediff(q,'2005-01-01 14:12:01',getdate())
select datediff(m,'2005-01-01 14:12:01',getdate())
select datediff(ww,'2005-01-01 14:12:01',getdate())
select datediff(d,'2005-01-01 14:12:01',getdate())
select datediff(hh,'2005-01-01 14:12:01',getdate())
select datediff(n,'2005-01-01 14:12:01',getdate())
select datediff(s,'2005-01-01 14:12:01',getdate())

附上教科书链接:

 http://www.w3school.com.cn/sql/func_dateadd.asp

 

2. 规定Sql语句中指定输出,使用Round

例子:SELECT round(output,2) from db  //规定SQL语句的输出结果保留2位小数

 http://www.w3school.com.cn/sql/sql_func_round.asp

 

3.SQLServer 查询所有表名 + 查询表结构

SQLServer查询某数据库所有表的表名:

select name from sysobjects where xtype='U';

 

sqlserver查询某表的表结构:
SELECT syscolumns.name,systypes.name,syscolumns.isnullable, syscolumns.length 
FROM syscolumns, systypes 
WHERE syscolumns.xusertype = systypes.xusertype  AND syscolumns.id = object_id('表名')

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值