SQLSERVER基本技巧--系统内置函数

字段类型互转

  • 字符串转DATETIME类

    -- 将时间字符串转换为DATETIME类
    -- 基础:  20210101 =>输出:2021-01-01 00:00:00.000
    SELECT CONVERT(DATETIME, '20210101')
    SELECT CONVERT(DATETIME, '2021-01-01') 
    -- 复杂: 长日期时间字符串 '20210101082056' =>输出:2021-01-14 08:20:56.000
    DECLARE @DT VARCHAR(20)= '20210101082056'
    SELECT CONVERT(DATETIME,CONVERT(CHAR(10),CONVERT(DATETIME, LEFT(@DT,8),112),120)+' '+SUBSTRING(RIGHT(@DT,6),1,2)+':'+SUBSTRING(RIGHT(@DT,6),3,2)+':'+SUBSTRING(RIGHT(@DT,6),5,2))
    
    
  • DATETIME型转字符串

    --最常用
    SELECT CONVERT(CHAR(8),GETDATE(),112) --20200101
    SELECT CONVERT(CHAR(10),GETDATE(),120) --2020-01-01
    
  • 数值型转为字符串

    SELECT CONVERT(VARCHAR(50), CAST(111111.11 AS MONEY),1) --带千分位的数字文本: 111,111.11
    

其他

  • 获取随机数
    -- 生成1-10000范围内的随机数(0-9999范围内就用floor())
    select cast(ceiling(rand() * 10000) as int)    
    select cast(ceiling(rand(checksum(newid()))*10000) as int) --基本同上,但是在批量更新时更合适  
    
posted @ 2021-01-28 19:27  hawking8su  阅读(168)  评论(0)    收藏  举报