sql 常用内置函数

  1. 获取服务器时间
    select getdate()
    select FORMAT(CAST( '2024-01-02 12:2:1' as datetime),'MM-dd') 01-02
    --yyyy:四位数的年份。
    --MM:两位数的月份,带前导零 (注意和分钟区分,分钟是小写的mm)
    --MMM:缩写的月份名称(例如:Jan、Feb)
    --dd:两位数的日期,带前导零
    注:如果对日期精确度需要达到毫秒级及其以下的,请使用datetime2(3)类型,括号内为保留3位毫秒精度
  2. 日期操作
    复制代码
    日期获取:DATENAME(datepart,date)
      SELECT DATENAME(yy, '2021/01/06'):2021
    日期加减:DATEADD(datepart,number,date)
      SELECT DATEADD(DD,-1, '2021-07-07'):2021-07-06 00:00:00.000
    日期差值:DATEDIFF(datepart,date1,date2):date2-date1
      SELECT DATEDIFF(''d'','2003-01-01','2003-01-02'):1
      SELECT DATEDIFF(''d'','2003-01-02','2003-01-01'):-1
    datepart缩写datepart缩写
    yy, yyyy,year 星期 dw, w
    季度 qq, q 小时 hh
    mm, m 分钟 mi, n
    年中的日 dy, y ss, s
    dd, d 毫秒 ms
    wk, ww 微妙 mcs
        纳秒 ns
     
    复制代码

     

  3. 定位字符
    select CHARINDEX('1','123'):1
    select CHARINDEX('222','123'):0

      

  4. 截断
    SUBSTRING('123',1,2)
    结果:12
    LEFT('123',1)
    结果:1
    RIGHT('123',1)
    结果:3

     

  5. 倒置
    REVERSE('123')
    结果:321

     

  6. 长度测量
    LEN('123')
    结果:3

     

  7. 替换
    REPLACE('123','1','a')--在123中查找1并将其替换成a
    结果:a23
    STUFF('123',1,2,'a')--在123中从位置1截取2个单位的字符,并将其替换成a
    结果:a3
    替换空格、回车等
    REPLACE(REPLACE(REPLACE(REPLACE(column,CHAR(10),''),CHAR(13),''),CHAR(32),''),CHAR(9),'') 

     

  8. 获取当前登录用户
    1
    2
    USER_ID(),以获取与当前连接关联的数据库用户 ID。
    USER_NAME(),以获取与数据库用户 ID 关联的数据库用户名

     

  9. 转换数据类型
    select CAST('123' as int)   -- 123
    select CONVERT(int, '123')  -- 123

     

  10. 获取自增主键
    复制代码
    --单行
    select @@identity
    
    --批量
    create table #test (
        [id] [bigint] IDENTITY(1,1) NOT NULL,
        [name] [nvarchar](50) NULL
    )
    
    DECLARE @batchInsertedIds TABLE (
        ID bigint 
    )
    
    INSERT INTO #test([name])
    OUTPUT INSERTED.id INTO @batchInsertedIds(ID)
    select [name] from #test
    
    select * from #test
    select * from @batchInsertedIds
    复制代码

     

  11. 分页
    ROW_NUMBER() OVER(PARTITION BY Column ORDER BY column ASC) AS rownum

     

  12. 拼接
    STUFF(( SELECT  ';' +column FROM table WHERE 1=1 FOR XML PATH('')), 1, 1, '')

     

  13. 查询表单数量
    SELECT a.name, b.rows
    FROM sysobjects As a INNER JOIN sysindexes As b oN a.id = b.id
    WHERE(a.type ='u')AND(b.indid IN(0,1))
    ORDER BY b.rOWS DESC

      

  14. 查询磁盘空间
    EXEC master.dbo.xp_fixeddrives

     

posted @   疯狂阿坤  阅读(175)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤
点击右上角即可分享
微信分享提示