- 获取日期时间
- 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的一些区别
结果示例: 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.8582564MySql也能用 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:16UTC 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 |
示例:上个月
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可以用-- 注释必须加空格, 用#不用加空格



