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(DAYOF‎YEAR, 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());

 

posted on 2022-12-08 20:30  骑着母猪去打猎  阅读(4216)  评论(0编辑  收藏  举报