专栏首页博客园SqlServer日期时间函数

SqlServer日期时间函数

        datediff(day,createdate,GetDate())=0      -- 判断是否当天,createdate为日期字段

    

    --                                                                                    ╔════════════════════╗

    -- =================================================================================  ║    第一天、第几月  ║

    --                                                                                    ╚════════════════════╝ 

 

            -- 1.一个月第一天的

            Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

 

            -- 2.本周的星期一

            Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)

 

            -- 3.一年的第一天

            Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)

 

            -- 4.季度的第一天

            Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)

 

            -- 5.当天的半夜

            Select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)

 

            -- 6.上个月的最后一天

            Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))

 

            -- 7.去年的最后一天

            Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))

 

            -- 8.本月的最后一天

            Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))

 

            -- 9.本年的最后一天

            Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))

 

            -- 10.本月的第一个星期一

            select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0) 

 

            select 本年第多少周=datename(week,getdate())

                  ,今天是周几=datename(weekday,getdate())

 

            --  dateadd 在向指定日期加上一段时间的基础上,返回新的datetime值

            -- 向日期加上2天 或 增加1个月

                select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000

                select dateadd(month,2,'2004-10-15') --返回:2004-12-17 00:00:00.000

 

            --3. datediff 返回跨两个指定日期的日期和时间边界数。

                 select datediff(day,'2004-09-01','2004-09-18') --返回天数:17

                 select DateDiff(s,'2005-07-20','2005-7-25 22:56:32') --返回值为 514592 秒

                 select DateDiff(ms,'2005-07-20','2005-7-25 22:56:32') --返回值为 微秒

                 select DateDiff(d,'2005-07-20','2005-7-25 22:56:32') -- 返回值为 5 天

                 select DatePart(w,'2005-7-25 22:56:32')--返回值为 2 即星期一(周日为1,周六为7)

                 select DatePart('d','2005-7-25 22:56:32')--返回值为 25即25号

                 select DatePart('y','2005-7-25 22:56:32')--返回值为 206即这一年中第206天

                 select DatePart('yyyy','2005-7-25 22:56:32')--返回值为 2005即2005年

 

            --DateDiff (interval,date1,date2) 以interval 指定的方式,

            --返回date2 与date1两个日期之间的差值 date2-date1

            --DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期

            --DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值

            --DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称

 

 

    --                                                                                    ╔════════════════════╗

    -- =================================================================================  ║  当前时间函数      ║

    --                                                                                    ╚════════════════════╝ 

            -- 返回当前日期和时间

               select GETDATE()

 

            --  返回代表指定日期的指定日期部分的整数。

                select datepart(month, '2004-10-15') --返回 月

                select datepart(day, '2004-10-15') --返回 日

                select datepart(year, getdate()) --返回 年

                select convert(varchar(8),getdate(),114)  -- 当前时间

                select datename(weekday, getdate()) --返回:星期五

                select datepart(weekday, getdate()) --返回:小写星期2-1

                select convert(varchar(10),getdate(),120)  -- 当前日期

                select datepart(S, '2004-10-15') --返回 月

            --  返回时间到豪秒

                Select CONVERT(VARCHAR(30),GETDATE(),9)

 

            --  获取当前日期,年、月、日、周、时、分、秒

                select GETDATE() as '当前日期',

                DateName(year,GetDate()) as '年',

                DateName(month,GetDate()) as '月',

                DateName(day,GetDate()) as '日',

                DateName(dw,GetDate()) as '星期',

                DateName(week,GetDate()) as '周数',

                DateName(hour,GetDate()) as '时',

                DateName(minute,GetDate()) as '分',

                DateName(second,GetDate()) as '秒'

 

print DateName(second,GetDate())+'1'

 

 

 

 

 

 

 

            --  格式

 

                select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')

                20040912110608

 

                select CONVERT(varchar(12) , getdate(), 111 )

                2004/09/12

 

                select CONVERT(varchar(12) , getdate(), 112 )

                20040912

 

                select CONVERT(varchar(12) , getdate(), 102 )

                2004.09.12

 

                select CONVERT(varchar(12) , getdate(), 101 )

                09/12/2004

 

                select CONVERT(varchar(12) , getdate(), 103 )

                12/09/2004

 

                select CONVERT(varchar(12) , getdate(), 104 )

                12.09.2004

 

                select CONVERT(varchar(12) , getdate(), 105 )

                12-09-2004

 

                select CONVERT(varchar(12) , getdate(), 106 )

                12 09 2004

 

                select CONVERT(varchar(12) , getdate(), 107 )

                09 12, 2004

 

                select CONVERT(varchar(12) , getdate(), 108 )

                11:06:08

 

                select CONVERT(varchar(12) , getdate(), 109 )

                09 12 2004 1

 

                select CONVERT(varchar(12) , getdate(), 110 )

                09-12-2004

 

                select CONVERT(varchar(12) , getdate(), 113 )

                12 09 2004 1

 

                select CONVERT(varchar(12) , getdate(), 114 )

                11:06:08.177

 

    --                                                                                    ╔════════════════════╗

    -- =================================================================================  ║  数据库时间函数    ║

    --                                                                                    ╚════════════════════╝ 

 

                -- 查询最近一个月内的点击率大于100的记录数据:

                select * from t_business_product where hit_count>100 and datediff(Dd,last_date,getdate())<=30 order by id desc

 

                -- 查询最近一周内的点击率大于100的记录数据:

                select * from t_business_product where hit_count>100 and datediff(Dw,last_date,getdate())<=7 order by id desc

 

                -- 你可以使用LIKE来返回正确的记录。通过在日期表达式中包含通配符“%”,

                -- 你可以匹配一个特定日期的所有时间。这里有一个例子:

                --这个语句可以匹配正确的记录。因为通配符“%”代表了任何时间。

 

                Select * FROM weblog Where entrydate LIKE ‘Dec 25 2000%’

 

    --                                                                                    ╔════════════════════╗

    -- =================================================================================  ║ CAST和CONVERT函数  ║

    --                                                                                    ╚════════════════════╝ 

select @@version

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

推荐阅读

  • 远程办公经验为0,如何将日常工作平滑过度到线上?

    我是一名创业者,我的公司(深圳市友浩达科技有限公司)在2018年8月8日开始运营,现在还属于微型公司。这个春节假期,我一直十分关注疫情动向,也非常关心其对公司带来的影响。

    TVP官方团队
    TAPD 敏捷项目管理腾讯乐享企业邮箱企业编程算法
  • 数据中台,概念炒作还是另有奇效? | TVP思享

    作者简介:史凯,花名凯哥,腾讯云最具价值专家TVP,ThoughtWorks数据智能业务总经理。投身于企业数字化转型工作近20年。2000年初,在IBM 研发企业级中间件,接着加入埃森哲,为大型企业提供信息化架构规划,设计,ERP,云平台,数据仓库构建等技术咨询实施服务,随后在EMC负责企业应用转型业务,为企业提供云迁移,应用现代化服务。现在专注于企业智能化转型领域,是数据驱动的数字化转型的行业布道者,数据中台的推广者,精益数据创新体系的创始人,2019年荣获全球Data IQ 100人的数据赋能者称号,创业邦卓越生态聚合赋能官TOP 5。2019年度数字化转型专家奖。打造了行业第一个数据创新的数字化转型卡牌和工作坊。创建了精益数据创新方法论体系构建数据驱动的智能企业,并在多个企业验证成功,正在向国内外推广。

    TVP官方团队
    大数据数据分析企业
  • 扩展 Kubernetes 之 CRI

    使用 cri-containerd 的调用流程更为简洁, 省去了上面的调用流程的 1,2 两步

    王磊-AI基础
    Kubernetes
  • 扩展 Kubernetes 之 Kubectl Plugin

    kubectl 功能非常强大, 常见的命令使用方式可以参考 kubectl --help,或者这篇文章

    王磊-AI基础
    Kubernetes
  • 多种登录方式定量性能测试方案

    最近接到到一个测试任务,某服务提供了两种登录方式:1、账号密码登录;2、手机号+验证码登录。要对这两种登录按照一定的比例进行压测。

    八音弦
    测试服务 WeTest
  • 线程安全类在性能测试中应用

    首先验证接口参数签名是否正确,然后加锁去判断订单信息和状态,处理用户增添VIP时间事务,成功之后释放锁。锁是针对用户和订单的分布式锁,使用方案是用的redis。

    八音弦
    安全编程算法
  • 使用CDN(jsdelivr) 优化博客访问速度

    PS: 此篇文章适用于 使用 Github pages 或者 coding pages 的朋友,其他博客也类似.

    IFONLY@CUIT
    CDNGitGitHub开源
  • 扩展 Kubernetes 之 CNI

    Network Configuration 是 CNI 输入参数中最重要当部分, 可以存储在磁盘上

    王磊-AI基础
    Kubernetes
  • 聚焦【技术应变力】云加社区沙龙online重磅上线!

    云加社区结合特殊时期热点,挑选备受关注的音视频流量暴增、线下业务快速转线上、紧急上线防疫IoT应用等话题,邀请众多业界专家,为大家提供连续十一天的干货分享。从视野、预判、应对等多角度,帮助大家全面提升「技术应变力」!

    腾小云
  • 京东购物小程序购物车性能优化实践

    它是小程序开发工具内置的一个可视化监控工具,能够在 OS 级别上实时记录系统资源的使用情况。

    WecTeam
    渲染JavaScripthttps网络安全缓存

扫码关注云+社区

领取腾讯云代金券