赞
踩
有时候我们会发现,直接对比时间戳,要比先转换为时间格式然后再对比要很多。那么,如何获取当前年第一天的时间戳呢?
datediff(ss,'1970-01-01',DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) )
授之以鱼,不如授之以渔,上面有个函数其实是通用的;
datediff取差函数(第三个参数可以根据自己的需要更改)
既读取当前时间与1970-01-01之间的秒数就是当前时间戳
datediff函数很强大,比如要算出两个日期之间的月数
ss
表示以秒为单位1970-01-01
时间戳都从这个日期计算getdate()
当前时间- 1> SELECT datediff(mm,'2012-01-01',GETDATE()) as time
- 2> go
- time
- 13
- (1 row affected)
当然,如果你也可以通过getdate()
读取当前日期以后也可以使用其它语言转换成时间戳也可以。
更多固定日期格式如下
-
- --本周的第一天
- 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(mm, DATEDIFF(mm,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)

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。