SQLSERVER日期查询(年、月、日、季、周、时、分、秒)
SELECT GETDATE () [当前日期],
DATENAME (YEAR, GETDATE ()) [年],
DATENAME (MONTH, GETDATE ()) [月],
DATENAME (DAY, GETDATE ()) [日],
DATENAME (DW, GETDATE ()) [星期],
DATENAME (WEEK, GETDATE ()) [周数],
DATENAME (HOUR, GETDATE ()) [时],
DATENAME (MINUTE, GETDATE ()) [分],
DATENAME (SECOND, GETDATE ()) [秒];
-- 显示本月第一天
SELECT DATEADD (MM, DATEDIFF (MM, 0, GETDATE ()), 0);
SELECT CONVERT (DATETIME, CONVERT (VARCHAR (8), GETDATE (), 120) + '01', 120);
-- 显示本月最后一天
SELECT DATEADD (
DAY,
-1,
CONVERT (DATETIME, CONVERT (VARCHAR (8), DATEADD (MONTH, 1, GETDATE ()), 120) + '01', 120)
);
SELECT DATEADD (MS, -3, DATEADD (MM, DATEDIFF (M, 0, GETDATE ()) + 1, 0));
-- 上个月的最后一天
SELECT DATEADD(MS,-3,DATEADD(MM,DATEDIFF(MM,0,GETDATE()),0));
-- 本月的第一个星期一
SELECT DATEADD(WK,DATEDIFF(WK,0, DATEADD(DD,6-DATEPART(DAY,GETDATE()),GETDATE())),0);
-- 本年的第一天
SELECT DATEADD(YY,DATEDIFF(YY,0,GETDATE()),0);
-- 本年的最后一天
SELECT DATEADD(MS,-3,DATEADD(YY,DATEDIFF(YY,0,GETDATE())+1,0));
-- 去年的最后一天
SELECT DATEADD(MS,-3,DATEADD(YY,DATEDIFF(YY,0,GETDATE()),0));
-- 本季度的第一天
SELECT DATEADD(QQ,DATEDIFF(QQ,0,GETDATE()),0) ;
-- 本周的星期一
SELECT DATEADD(WK,DATEDIFF(WK,0,GETDATE()),0);
-- 查询本月的记录
SELECT * FROM TB WHERE DATEPART(MM, DATECOLUMN) = DATEPART(MM, GETDATE()) AND DATEPART(YY, DATECOLUMN) = DATEPART(YY, GETDATE());
-- 查询本周的记录
SELECT * FROM TB WHERE DATEPART(WK, DATECOLUMN) = DATEPART(WK, GETDATE()) AND DATEPART(YY, DATECOLUMN) = DATEPART(YY, GETDATE());
-- 查询本季的记录
SELECT * FROM TB WHERE DATEPART(QQ, DATECOLUMN) = DATEPART(QQ, GETDATE()) AND DATEPART(YY, DATECOLUMN) = DATEPART(YY, GETDATE());
-- 获取当月总天数:
SELECT DATEDIFF (DD, GETDATE (), DATEADD (MM, 1, GETDATE ()));
SELECT DATEDIFF (DAY,
DATEADD (MM, DATEDIFF (MM, '', GETDATE ()), ''),
DATEADD (MM, DATEDIFF (MM, '', GETDATE ()), '1900-02-01')
);
-- 获取当前为星期几
SELECT DATENAME(WEEKDAY, GETDATE());
-- 当前系统日期、时间
SELECT GETDATE(), SYSDATETIME(), SYSDATETIMEOFFSET();
-- DATEADD 在向指定日期加上一段时间的基础上,返回新的 DATETIME 值
-- 返回:2015-08-17 00:00:00.000
SELECT DATEADD(DAY,2,'2015-08-15');
-- DATEDIFF 返回跨两个指定日期的日期和时间边界数。
-- 返回:16
SELECT DATEDIFF(DAY,'2015-08-01','2015-08-17') ;
-- DATEPART 返回代表指定日期的指定日期部分的整数。
-- 返回 8
SELECT DATEPART(MONTH, '2015-08-15') ;
-- DATENAME 返回代表指定日期的指定日期部分的字符串
-- 返回:星期六
SELECT DATENAME(WEEKDAY, '2015-08-15');
-- 取当前日期、时间
SELECT CONVERT(VARCHAR(10),GETDATE(),120) CURRENT_DATE, CONVERT(VARCHAR(8),GETDATE(),114) CURRENT_TIME;
-- 函数 参数/功能
-- 返回系统目前的日期与时间
SELECT GETDATE (), SYSDATETIME (), SYSDATETIMEOFFSET ();
-- 以INTERVAL 指定的方式,返回DATE2 与DATE1两个日期之间的差值 DATE2-DATE1
SELECT DATEDIFF (INTERVAL, DATE1, DATE2);
-- 以INTERVAL指定的方式,加上NUMBER之后的日期
SELECT DATEADD (INTERVAL, NUMBER, DATE);
-- 返回日期DATE中,INTERVAL指定部分所对应的整数值
SELECT DATEPART (INTERVAL, DATE);
-- 返回日期DATE中,INTERVAL指定部分所对应的字符串名称
SELECT DATENAME (INTERVAL, DATE);
-- 参数 INTERVAL的设定值及缩写如下:
SELECT DATENAME(YEAR, SYSDATETIMEOFFSET()),DATENAME(YY, SYSDATETIMEOFFSET()),
DATENAME(QUARTER, SYSDATETIMEOFFSET()),DATENAME(QQ, SYSDATETIMEOFFSET()),
DATENAME(MONTH, SYSDATETIMEOFFSET()),DATENAME(MM, SYSDATETIMEOFFSET()),
DATENAME(DAYOFYEAR, SYSDATETIMEOFFSET()),DATENAME(DY, SYSDATETIMEOFFSET()),
DATENAME(DAY, SYSDATETIMEOFFSET()),DATENAME(DD, SYSDATETIMEOFFSET()),
DATENAME(WEEK, SYSDATETIMEOFFSET()),DATENAME(WK, SYSDATETIMEOFFSET()),
DATENAME(WEEKDAY, SYSDATETIMEOFFSET()),DATENAME(DW, SYSDATETIMEOFFSET()),
DATENAME(HOUR, SYSDATETIMEOFFSET()),DATENAME(HH, SYSDATETIMEOFFSET()),
DATENAME(MINUTE, SYSDATETIMEOFFSET()),DATENAME(MI, SYSDATETIMEOFFSET()),
DATENAME(SECOND, SYSDATETIMEOFFSET()),DATENAME(SS, SYSDATETIMEOFFSET()),
DATENAME(MILLISECOND, SYSDATETIMEOFFSET()),DATENAME(MS, SYSDATETIMEOFFSET());
DATENAME (YEAR, GETDATE ()) [年],
DATENAME (MONTH, GETDATE ()) [月],
DATENAME (DAY, GETDATE ()) [日],
DATENAME (DW, GETDATE ()) [星期],
DATENAME (WEEK, GETDATE ()) [周数],
DATENAME (HOUR, GETDATE ()) [时],
DATENAME (MINUTE, GETDATE ()) [分],
DATENAME (SECOND, GETDATE ()) [秒];
-- 显示本月第一天
SELECT DATEADD (MM, DATEDIFF (MM, 0, GETDATE ()), 0);
SELECT CONVERT (DATETIME, CONVERT (VARCHAR (8), GETDATE (), 120) + '01', 120);
-- 显示本月最后一天
SELECT DATEADD (
DAY,
-1,
CONVERT (DATETIME, CONVERT (VARCHAR (8), DATEADD (MONTH, 1, GETDATE ()), 120) + '01', 120)
);
SELECT DATEADD (MS, -3, DATEADD (MM, DATEDIFF (M, 0, GETDATE ()) + 1, 0));
-- 上个月的最后一天
SELECT DATEADD(MS,-3,DATEADD(MM,DATEDIFF(MM,0,GETDATE()),0));
-- 本月的第一个星期一
SELECT DATEADD(WK,DATEDIFF(WK,0, DATEADD(DD,6-DATEPART(DAY,GETDATE()),GETDATE())),0);
-- 本年的第一天
SELECT DATEADD(YY,DATEDIFF(YY,0,GETDATE()),0);
-- 本年的最后一天
SELECT DATEADD(MS,-3,DATEADD(YY,DATEDIFF(YY,0,GETDATE())+1,0));
-- 去年的最后一天
SELECT DATEADD(MS,-3,DATEADD(YY,DATEDIFF(YY,0,GETDATE()),0));
-- 本季度的第一天
SELECT DATEADD(QQ,DATEDIFF(QQ,0,GETDATE()),0) ;
-- 本周的星期一
SELECT DATEADD(WK,DATEDIFF(WK,0,GETDATE()),0);
-- 查询本月的记录
SELECT * FROM TB WHERE DATEPART(MM, DATECOLUMN) = DATEPART(MM, GETDATE()) AND DATEPART(YY, DATECOLUMN) = DATEPART(YY, GETDATE());
-- 查询本周的记录
SELECT * FROM TB WHERE DATEPART(WK, DATECOLUMN) = DATEPART(WK, GETDATE()) AND DATEPART(YY, DATECOLUMN) = DATEPART(YY, GETDATE());
-- 查询本季的记录
SELECT * FROM TB WHERE DATEPART(QQ, DATECOLUMN) = DATEPART(QQ, GETDATE()) AND DATEPART(YY, DATECOLUMN) = DATEPART(YY, GETDATE());
-- 获取当月总天数:
SELECT DATEDIFF (DD, GETDATE (), DATEADD (MM, 1, GETDATE ()));
SELECT DATEDIFF (DAY,
DATEADD (MM, DATEDIFF (MM, '', GETDATE ()), ''),
DATEADD (MM, DATEDIFF (MM, '', GETDATE ()), '1900-02-01')
);
-- 获取当前为星期几
SELECT DATENAME(WEEKDAY, GETDATE());
-- 当前系统日期、时间
SELECT GETDATE(), SYSDATETIME(), SYSDATETIMEOFFSET();
-- DATEADD 在向指定日期加上一段时间的基础上,返回新的 DATETIME 值
-- 返回:2015-08-17 00:00:00.000
SELECT DATEADD(DAY,2,'2015-08-15');
-- DATEDIFF 返回跨两个指定日期的日期和时间边界数。
-- 返回:16
SELECT DATEDIFF(DAY,'2015-08-01','2015-08-17') ;
-- DATEPART 返回代表指定日期的指定日期部分的整数。
-- 返回 8
SELECT DATEPART(MONTH, '2015-08-15') ;
-- DATENAME 返回代表指定日期的指定日期部分的字符串
-- 返回:星期六
SELECT DATENAME(WEEKDAY, '2015-08-15');
-- 取当前日期、时间
SELECT CONVERT(VARCHAR(10),GETDATE(),120) CURRENT_DATE, CONVERT(VARCHAR(8),GETDATE(),114) CURRENT_TIME;
-- 函数 参数/功能
-- 返回系统目前的日期与时间
SELECT GETDATE (), SYSDATETIME (), SYSDATETIMEOFFSET ();
-- 以INTERVAL 指定的方式,返回DATE2 与DATE1两个日期之间的差值 DATE2-DATE1
SELECT DATEDIFF (INTERVAL, DATE1, DATE2);
-- 以INTERVAL指定的方式,加上NUMBER之后的日期
SELECT DATEADD (INTERVAL, NUMBER, DATE);
-- 返回日期DATE中,INTERVAL指定部分所对应的整数值
SELECT DATEPART (INTERVAL, DATE);
-- 返回日期DATE中,INTERVAL指定部分所对应的字符串名称
SELECT DATENAME (INTERVAL, DATE);
-- 参数 INTERVAL的设定值及缩写如下:
SELECT DATENAME(YEAR, SYSDATETIMEOFFSET()),DATENAME(YY, SYSDATETIMEOFFSET()),
DATENAME(QUARTER, SYSDATETIMEOFFSET()),DATENAME(QQ, SYSDATETIMEOFFSET()),
DATENAME(MONTH, SYSDATETIMEOFFSET()),DATENAME(MM, SYSDATETIMEOFFSET()),
DATENAME(DAYOFYEAR, SYSDATETIMEOFFSET()),DATENAME(DY, SYSDATETIMEOFFSET()),
DATENAME(DAY, SYSDATETIMEOFFSET()),DATENAME(DD, SYSDATETIMEOFFSET()),
DATENAME(WEEK, SYSDATETIMEOFFSET()),DATENAME(WK, SYSDATETIMEOFFSET()),
DATENAME(WEEKDAY, SYSDATETIMEOFFSET()),DATENAME(DW, SYSDATETIMEOFFSET()),
DATENAME(HOUR, SYSDATETIMEOFFSET()),DATENAME(HH, SYSDATETIMEOFFSET()),
DATENAME(MINUTE, SYSDATETIMEOFFSET()),DATENAME(MI, SYSDATETIMEOFFSET()),
DATENAME(SECOND, SYSDATETIMEOFFSET()),DATENAME(SS, SYSDATETIMEOFFSET()),
DATENAME(MILLISECOND, SYSDATETIMEOFFSET()),DATENAME(MS, SYSDATETIMEOFFSET());
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署