首页 > 代码库 > SQL精华应用

SQL精华应用

【精确到纳秒的时间函数】

SYSDATETIME()、SYSUTCDATETIME()        ---- 精确程度取决于运行 SQL Server 实例的计算机硬件和 Windows 版本


【生成18位纯数字的ID】

1. select REPLACE(REPLACE(REPLACE(REPLACE(CONVERT(varchar(24),SYSDATETIME()), ‘ ‘,‘‘), ‘-‘,‘‘), ‘:‘,‘‘), ‘.‘,‘‘)    ---- 纳秒截取18位

2. select SUBSTRING(REPLACE(REPLACE(REPLACE(REPLACE(CONVERT(varchar(27),SYSDATETIME()), ‘ ‘,‘‘), ‘-‘,‘‘), ‘:‘,‘‘), ‘.‘,‘‘),1,18)     ---- 纳秒截取18位

3. select REPLACE(REPLACE(REPLACE(REPLACE(CONVERT(varchar(23),GETDATE(),121), ‘ ‘,‘‘), ‘-‘,‘‘), ‘:‘,‘‘), ‘.‘,‘‘) + CAST(CEILING(RAND()*9) AS VARCHAR)     ---- 毫秒加一位随机数


【生成20位纯数字的ID】

1. select REPLACE(REPLACE(REPLACE(REPLACE(CONVERT(varchar(26),SYSDATETIME()), ‘ ‘,‘‘), ‘-‘,‘‘), ‘:‘,‘‘), ‘.‘,‘‘)    ---- 纳秒截取20位

2. select SUBSTRING(REPLACE(REPLACE(REPLACE(REPLACE(CONVERT(varchar(27),SYSDATETIME()), ‘ ‘,‘‘), ‘-‘,‘‘), ‘:‘,‘‘), ‘.‘,‘‘),1,20)     ---- 纳秒截取20位



SQL精华应用