栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

微软数据库SqlServer MsSql 日期时间函数 笔记

微软数据库SqlServer MsSql 日期时间函数 笔记

微软SqlServer MsSql 日期时间函数 笔记
  • 获取日期时间
    • GETDATE() 获取当前系统(本地)时间 秒后3位
    • SYSDATETIME() 获取当前系统(本地)时间 秒后7位(超微秒)
    • CURRENT_TIMESTAMP 数据库时间戳 (无括号)(MySql也有同名)
        • MySql也能用 CURRENT_TIMESTAMP , 可以加括号 CURRENT_TIMESTAMP()
    • UTC
      • GETUTCDATE()
      • SysUTCDateTime()
  • 日期时间部件代码 DateTimePart
    • 年是year或yyyy或yy 或yEaR或yY...
    • 月是m或mm或month,分是minute或mi或n , (不区分大小写)
    • 缩写表
  • 时间加减
    • DATEADD(DateTimePart , 整数 , 日期时间) 返回 日期时间
  • 求时间差
    • DATEDIFF(返回类型DateTimePart , 开始, 结束 ) 返回整数
  • 判断字符串是否为日期数据格式 isDate(xxx)
  • 总结
      • 默认不区分大小写
      • MsSql与MySql的一些区别

获取日期时间 GETDATE() 获取当前系统(本地)时间 秒后3位

结果示例: 2021-10-02 21:26:53.133

GETDATE()
getdate() getDate() GetDate() gEtdAtE() GETDATE()

默认不区分大小写

SYSDATETIME() 获取当前系统(本地)时间 秒后7位(超微秒)

SysDatetime() 是SQLServer 2008中新增的日期时间型函数
结果示例: 2021-10-02 21:26:53.1822627

SYSDATETIME()
sysdatetime() SysDatetime() SysDateTime() SYSDATETIME()
CURRENT_TIMESTAMP 数据库时间戳 (无括号)(MySql也有同名)

CURRENT_TIMESTAMP 输出格式和 GETDATE() 一样, 精确到毫秒

SELECT GETDATE() --结果: 2021-10-02 23:05:24.813
GO
SELECT CURRENT_TIMESTAMP --结果: 2021-10-02 23:05:24.840
GO
SELECT SYSDATETIME() --结果: 2021-10-02 23:05:24.8582564
MySql也能用 CURRENT_TIMESTAMP , 可以加括号 CURRENT_TIMESTAMP()
SELECT NOW(); #结果: 2021-10-02 23:28:16
SELECT CURRENT_TIMESTAMP; -- 结果: 2021-10-02 23:28:16
SELECT CURRENT_TIMESTAMP(); -- 结果: 2021-10-02 23:28:16
UTC GETUTCDATE() SysUTCDateTime()
日期时间部件代码 DateTimePart 年是year或yyyy或yy 或yEaR或yY… 月是m或mm或month,分是minute或mi或n , (不区分大小写) 缩写表
DateTimePart缩写 (默认不区分大小写)
yy, yyyy
季度qq, q
mm, m
年中的日dy, y
dd, d
wk, ww
星期dw, w
小时hh
分钟mi, n
ss, s
毫秒ms
微妙mcs
纳秒ns
时间加减 DATEADD(DateTimePart , 整数 , 日期时间) 返回 日期时间

示例:上个月

SELECT dAtEaDd(m,-1,SysDatetime());

示例: 明年现在

SELECT DateAdd(YY,1,getDate());

示例: 6小时前

SELECT DATEADD(HH,-6,SYSDATETIME());

2000-01-01 加 60 天

SELECT DATEADD(d,60,'2000-01-01');
GO
SELECT DATEADD(dd,60,'2000-01-01');
GO
SELECT DATEADD(day,60,'2000-01-01');
GO

都返回

2000-03-01 00:00:00.000

60年

SELECT DATEADD(yy,60,'2000-01-01');
GO
SELECT DATEADD(YeAr,60,'2000-01-01');
GO
SELECT DATEADD(YyYy,60,'2000-01-01');
GO
SELECT DATEADD(yY,60,'2000-01-01');
GO

求时间差 DATEDIFF(返回类型DateTimePart , 开始, 结束 ) 返回整数

返回时间2减去时间1(时间1到时间2)

SELECT dateDiff(d, '2000-01-01' , '2000-03-01');
GO
SELECT dateDiff(dd, '2000-01-01' , '2000-03-01');
GO
SELECT dateDiff(day, '2000-01-01' , '2000-03-01');
GO

都返回 60

2000-01-01到现在经过多少秒

SELECT dateDiff(s, '2000-01-01' , getDate());
GO
SELECT dateDiff(ss, '2000-01-01' , SYSDATETIME());
GO
SELECT dateDiff(second, '2000-01-01' , Current_TimeStamp);
GO

都返回 686529530

过了多少分钟

SELECT dateDiff(n, '2000-01-01' , getDate());
GO
SELECT dateDiff(mi, '2000-01-01' , SYSDATETIME());
GO
SELECT dateDiff(minute, '2000-01-01' , Current_TimeStamp);

判断字符串是否为日期数据格式 isDate(xxx)
总结 默认不区分大小写 MsSql与MySql的一些区别
  • MsSql可以用–注释,不用加空格, 不能用#
  • MySql可以用-- 注释必须加空格, 用#不用加空格
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/285744.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号