当前位置:   article > 正文

SqlServer 获取当年时间的时间戳

SqlServer 获取当年时间的时间戳

有时候我们会发现,直接对比时间戳,要比先转换为时间格式然后再对比要很多。那么,如何获取当前年第一天的时间戳呢?

datediff(ss,'1970-01-01',DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) )

授之以鱼,不如授之以渔,上面有个函数其实是通用的;

datediff取差函数(第三个参数可以根据自己的需要更改)

 

既读取当前时间与1970-01-01之间的秒数就是当前时间戳

datediff函数很强大,比如要算出两个日期之间的月数

    • ss 表示以秒为单位
    • 1970-01-01 时间戳都从这个日期计算
    • getdate() 当前时间
    • DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) 当年的第一天
    1. 1> SELECT datediff(mm,'2012-01-01',GETDATE()) as time
    2. 2> go
    3. time
    4. 13
    5. (1 row affected)

    当然,如果你也可以通过getdate()读取当前日期以后也可以使用其它语言转换成时间戳也可以。

  • 更多固定日期格式如下

    1. --本周的第一天
    2. SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
    3. --本年的第一天
    4. SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
    5. --本季度的第一天
    6. SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
    7. --当天的凌晨
    8. SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
    9. --上个月的最后一天
    10. SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
    11. --上一年的最后一天
    12. SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
    13. --本月的第一天
    14. SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
    15. --本月的最后一天
    16. SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
    17. --本年的最后一天
    18. SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
    19. --本月的第一个星期一
    20. select DATEADD(wk, DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate())), 0)

     

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/230720
推荐阅读
  

闽ICP备14008679号