SQLServer 날짜 함수 전체 (소결)

14006 단어 SQLServer날짜 함수

1. 통계 문장


1、--현재 [>당일 00시 이후 데이터] 집계

SELECT * FROM   WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(Nvarchar, GETDATE(), 111)   ORDER BY dateandtime DESC
2, -- 이번 주 통계

SELECT * FROM   WHERE datediff(week,[dateadd],getdate())=0
3, -- 이번 달 통계

SELECT * FROM   WHERE datediff(month,[dateadd],getdate())=0
4. 현재 통계

SELECT * FROM   WHERE datediff(day,[dateadd],getdate())=0
Select * From table with(nolock) Where Convert(varchar(10),[CreateTime],120) = Convert(varchar(10),getDate(),120)

2. 시간 함수


1. 현재 시스템 날짜, 시간

select getdate() 
2,dateadd는 지정된 날짜에 일정 시간을 더한 토대에서 새로운datetime 값을 되돌려줍니다. 예를 들어 날짜에 2일을 추가합니다.

select dateadd(day,2,'2004-10-15')   -- :2004-10-17 00:00:00.000
3. datediff는 두 개의 지정된 날짜에 걸쳐 날짜와 시간 경계수를 되돌려줍니다.

select datediff(day,'2004-09-01','2004-09-18')    -- :17
4. datepart는 지정된 날짜를 나타내는 지정된 날짜 부분의 정수를 되돌려줍니다.

SELECT DATEPART(month, '2004-10-15')   --  10
5. datename는 지정된 날짜를 나타내는 지정된 날짜 부분의 문자열을 되돌려줍니다.

SELECT datename(weekday, '2004-10-15')   -- : 
6. day (), month (), year () - datepart와 대조할 수 있습니다

select  =convert(varchar(10),getdate(),120),
select  =convert(varchar(8),getdate(),114),
select datename(dw,'2004-10-15')
select  =datename(week,'2004-10-15'),
select  =datename(weekday,'2004-10-15')
7. 차이 일수 구하기

select   datediff(day,'2004-01-01',getdate()) 
8. 한 달 첫날의

SELECT   DATEADD(mm,   DATEDIFF(mm,0,getdate()),   0) 
이번 주 월요일

SELECT   DATEADD(wk,   DATEDIFF(wk,0,getdate()),   0)  
select   dateadd(wk,datediff(wk,0,getdate()),6)  
10. 1년의 첫날

SELECT   DATEADD(yy,   DATEDIFF(yy,0,getdate()),   0)
11. 분기별 첫날

SELECT   DATEADD(qq,   DATEDIFF(qq,0,getdate()),   0)
12.그날 밤

SELECT   DATEADD(dd,   DATEDIFF(dd,0,getdate()),   0)
13.지난달 마지막 날

SELECT   dateadd(ms,-3,DATEADD(mm,  DATEDIFF(mm,0,getdate()),   0))
14.작년의 마지막 날

SELECT   dateadd(ms,-3,DATEADD(yy,   DATEDIFF(yy,0,getdate()),   0)) 
15. 이달의 마지막 날

SELECT   dateadd(ms,-3,DATEADD(mm,   DATEDIFF(m,0,getdate())+1,   0))
16. 올해의 마지막 날

SELECT   dateadd(ms,-3,DATEADD(yy,   DATEDIFF(yy,0,getdate())+1,   0))
17, 이번 달 첫 월요일

select   DATEADD(wk,  DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())),   0)
18. 이번 주 등록 인원 조회

select   count(*)   from   [user]  
where   datediff(week,create_day-1,getdate())=0 
19.지난주 등록자 수

select   count(*)   from   [user]  
where   datediff(week,create_day-1,getdate())=1
20. 이달 등록 인원

select   count(*)   from   [user]  
where   datediff(month,create_day,getdate())=0 
21, 지난달 등록 인원

select   count(*)   from   [user]  
where   datediff(month,create_day,getdate())=1
하면, 만약, 만약...
22. 이번 주 등록 인원 조회

select   count(*)   from   [user]  
where   create_day>=dateadd(day,2-datepart(weekday,getdate()),convert(varchar,getdate(),112))  
and   create_day<dateadd(day,9-datepart(weekday,getdate()),convert(varchar,getdate(),112)) 
23, 지난주 등록자 수

select   count(*)   from   [user]  
where   create_day>=dateadd(day,-5-datepart(weekday,getdate()),convert(varchar,getdate(),112))  
and   create_day<dateadd(day,2-datepart(weekday,getdate()),convert(varchar,getdate(),112)) 
24, 이달 등록 인원

select   count(*)   from   [user]  
where   create_day>=dateadd(day,1-day(getdate()),convert(varchar,getdate(),112))  
and   create_day<dateadd(month,1,dateadd(day,1-day(getdate()),convert(varchar,getdate(),112)))
25, 지난달 등록 인원

select   count(*)   from   [user]  
where   create_day>=dateadd(month,-1,dateadd(day,1-day(getdate()),convert(varchar,getdate(),112)))  
and   create_day<dateadd(day,1-day(getdate()),convert(varchar,getdate(),112)) 
이번 주

select   count(*)   from   User  
where   datediff(dd,create_day,getdate())   <=   datepart(dw,getdate()) 
27, 지난주

select   count(*)   from   User  
where   datediff(dd,create_day,(getdate()   -   datepart(dw,getdate())))   <=   7
28, 이번 달

select   count(*)   from   User  
where   datepart(mm,create_day)   =   datepart(mm,getdate())
29, 지난달

select   count(*)   from   User  
where   datepart(mm,create_day)   =   datepart(mm,getdate())   -   1
30, 이번 주 등록 인원

select   count(*)   from   [User]  
where   datediff(dd,create_day,getdate())   <=   datepart(dw,getdate()) 
31, 지난주 등록자 수

select   count(*)   from   [User]  
where   datediff(dd,create_day,(getdate()   -   datepart(dw,getdate())))   <=   7
32, 이달 등록 인원

select   count(*)   from   [User]  
where   datepart(mm,create_day)   =   datepart(mm,getdate())
33, 지난달 등록 인원

select   count(*)   from   [User]  
where   datepart(mm,create_day)   =   datepart(mm,getdate())   -   1
34. 오늘의 모든 것을 조회

SELECT * from feedback WHERE (DATEDIFF(d,fedtime,GETDATE())=0) ORDER BY fedid DESC
month(create_day)=month(getdate())   

month(create_day)=month(getdate())-1    

오늘의 모든 데이터: select * from 테이블 이름 where DateDiff (dd,datetime 형식 필드, getdate () = 0
어제의 모든 데이터: select * from 테이블 이름 where DateDiff (dd,datetime 형식 필드, getdate () = 1
7일 동안의 모든 데이터: select * from 테이블 이름 where DateDiff (dd,datetime 형식 필드, getdate () <=7
30일 동안의 모든 데이터: select * from 테이블 이름 where DateDiff (dd,datetime 형식 필드, getdate () <=30
이달의 모든 데이터: select * from 테이블 이름 where DateDiff(mm,datetime 형식 필드,getdate() = 0
올해의 모든 데이터: select * from 테이블 이름 where DateDiff (yy,datetime 형식 필드, getdate () = 0

시스템 함수:


함수
매개변수/기능
GetDate( )
시스템의 현재 날짜와 시간을 되돌려줍니다.
DateDiff (interval,date1,date2)
interval에서 지정한 방식으로date2와date1 두 날짜 사이의 차이값date2-date1을 되돌려줍니다.
DateAdd (interval,number,date)
interval이 지정한 방식으로number를 더한 날짜
DatePart (interval,date)
반환 날짜date에서 인터벌 지정 부분에 대응하는 정수 값
DateName (interval,date)
반환 날짜 날짜,interval 지정 부분에 대응하는 문자열 이름
매개변수 interval의 설정 값:
값지다
약어(Sql Server)
Access 및 ASP
설명
Year
Yy
yyyy
년 1753~9999
Quarter
Qq
q
시즌 1 ~ 4
Month
Mm
m
월 1 ~ 12
Day of year
Dy
y
일 년의 일수, 일 년 중 몇 번째 일
Day
Dd
d
일, 1-31
Weekday
Dw
w
일주일의 일수, 일주일 중 며칠째 1-7
Week
Wk
ww
주, 일년 중 몇 주 0 ~ 51
Hour
Hh
h
시 0 ~ 23
Minute
Mi
n
분 0 ~ 59
Second
Ss
s
초 0 ~ 59
Millisecond
Ms
-
밀리초 0 ~ 999
access와 asp에서date()와now()로 시스템 날짜 시간을 얻기;그 중에서 DateDiff, DateAdd, DatePart도 마찬가지로 Access와 asp에 사용할 수 있으며 이러한 함수의 사용법도 유사하다
예:

1.GetDate()  sql server :select GetDate()
2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')  514592  
DateDiff('d','2005-07-20','2005-7-25 22:56:32')  5  
3.DatePart('w','2005-7-25 22:56:32')  2  ( 1, 7)
DatePart('d','2005-7-25 22:56:32')  25 25 
DatePart('y','2005-7-25 22:56:32')  206 206 
DatePart('yyyy','2005-7-25 22:56:32')  2005 2005 
Sql 당일 또는 그 달 기록
표의 시간 형식은 다음과 같다. 2007-02-02 16:50:08.050, 당일 시간과 직접 비교하면 정확한 데이터를 얻지 못하지만, 우리는 이런 형식의 시간을 2007-02-02, 즉 연-월-일, 그리고 당일 시간도 연-월-일의 형식으로 포맷할 수 있다.
이렇게 하면 생각이 나온다!
우리 포맷 날짜는 Convert() 함수에 사용해야 합니다. 매개 변수 3개를 사용해야 합니다. 우선 그날 날짜를 포맷합니다. Convert(varchar(10), getDate(), 120)
이렇게 하면 우리는 그날의 날짜를 2007-2-2로 포맷한 다음에 데이터베이스 테이블의 날짜를 포맷할 수 있다
Convert(varchar(10), TimeFiled, 120), 마지막으로 우리는 Sql 문장으로 그날의 데이터를 얻을 수 있습니다.
예:

Select * From VIEW_CountBill Where Convert(varchar(10),[time],120) = Convert(varchar(10),getDate(),120)
참고:
Convert () 함수의 각 매개 변수의 의미, 첫 번째 매개 변수, varchar (10) 는 목표 시스템이 제공하는 데이터 형식으로bigint와 sql_를 포함한다variant.사용자 정의 데이터 형식을 사용할 수 없습니다.두 번째 매개 변수는 당신이 변환할 필드입니다. 여기는 [time]입니다.마지막으로 형식입니다. 이 값은 선택할 수 있습니다. 20 또는 120도 가능합니다. [ODBC 규범]을 따릅니다. 입력/출력 스타일은:yyy-mm-ddh:mm:ss[.ff]입니다.
자세한 내용은 Sql Server의 온라인 도움말을 참조하십시오.
======================================================

T-Sql 찾기표의 월간 기록


사고방식: 찾으려는 시간 필드를 Month () 함수로 그 중의 달을 추출한 다음에 현재 달의 달을 추출하면 대조는 OK
예:

Select * From VIEW_CountBill Where Month([time]) = Month(getDate())
오늘의 모든 데이터: select * from 테이블 이름 where DateDiff (dd,datetime 형식 필드, getdate () = 0
어제의 모든 데이터: select * from 테이블 이름 where DateDiff (dd,datetime 형식 필드, getdate () = 1
7일 동안의 모든 데이터: select * from 테이블 이름 where DateDiff (dd,datetime 형식 필드, getdate () <=7
30일 동안의 모든 데이터: select * from 테이블 이름 where DateDiff (dd,datetime 형식 필드, getdate () <=30
이달의 모든 데이터: select * from 테이블 이름 where DateDiff(mm,datetime 형식 필드,getdate() = 0
올해의 모든 데이터: select * from 테이블 이름 where DateDiff (yy,datetime 형식 필드, getdate () = 0
조회 오늘이 올해 며칠째: select datepart (dayofyear, getDate ()
조회 오늘이 이달의 며칠째입니다.select datepart(dd, getDate())
                                                2.select day(getDate())
이번 주 월요일 날짜가 어떻게 되는지 확인하십시오 (주의: 지정된 날짜는 일요일일 수 없습니다. 일요일이면 다음 주 월요일로 계산됩니다. 따라서 일요일이면 하루를 빼야 합니다) SELECT DATEADD (wk, DATEDIFF (wk, 0, getdate (), 0)
조회 어제 날짜: select convert(char,dateadd(DD,-1,getdate(), 111)//111은 스타일 번호, (100-114)
조회 이달 첫날 날짜: Select DATEADD(mm, DATEDIFF(mm, 0, getdate(), 0)as firstday
이번 달 마지막 날짜 조회: Select dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate)+1,0) as lastday//수정-3의 값이 변경됩니다.
이번 달 며칠: select datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(year(getdate())as varchar)+'-'+cast(month(getdate()as varchar)+'-01')as datetime)
두 시간대의 차이를 며칠 구하다:select datediff(day,'2012/8/1','2012/8/20')as daysum
지정된 날짜에 ±N일: select convert(char,dateadd(dd,1,'2012/8/20'), 111)asriqi//출력 2012/8/21
지정한 날짜에 ±N분:select dateadd(mi,-15, getdate())//현재 시간 15분 전 날짜 조회
지정 시간: select * from 테이블 이름 where 시간 필드 >=to_date('yyyy-MM-dd','1900-01-01');
오늘

select * from   where to_days( ) = to_days(now());
어제

SELECT * FROM   WHERE TO_DAYS( NOW( ) ) - TO_DAYS(  ) <= 1
근 7일

SELECT * FROM   where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date( )
근 30일

SELECT * FROM   where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date( )
이번 달

SELECT * FROM   WHERE DATE_FORMAT(  , '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
지난 달

SELECT * FROM   WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format(  , '%Y%m' ) ) =1
분기별 데이터 조회

select * from `ht_invoice_information` where QUARTER(create_date)=QUARTER(now());
이전 분기 데이터 조회

select * from `ht_invoice_information` where QUARTER(create_date)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));
연간 데이터 조회

select * from `ht_invoice_information` where YEAR(create_date)=YEAR(NOW());
전년도 데이터 조회

select * from `ht_invoice_information` where year(create_date)=year(date_sub(now(),interval 1 year));
현재 이번 주 데이터 조회

SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now());
지난주 데이터 조회

SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now())-1;
지난달 데이터 조회

select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m')

select * from user where DATE_FORMAT(pudate,'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m') ; 

select * from user where WEEKOFYEAR(FROM_UNIXTIME(pudate,'%y-%m-%d')) = WEEKOFYEAR(now()) 

select * from user where MONTH(FROM_UNIXTIME(pudate,'%y-%m-%d')) = MONTH(now()) 

select * from user where YEAR(FROM_UNIXTIME(pudate,'%y-%m-%d')) = YEAR(now()) and MONTH(FROM_UNIXTIME(pudate,'%y-%m-%d')) = MONTH(now()) 

select * from user where pudate between     and   

현재 월별 데이터 조회

select name,submittime from enterprise   where date_format(submittime,'%Y-%m')=date_format(now(),'%Y-%m')
현재 6개월 거리의 데이터를 조회하다

select name,submittime from enterprise where submittime between date_sub(now(),interval 6 month) and now();
질의 시간 구간:

select * from      WHERE   > '2018-12-11 13:36:31'  and     <= '2019-01-09 13:36:31'
SQLServer 날짜 함수 대전(소결)에 관한 이 글을 소개합니다. 더 많은 SQLServer 날짜 함수 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보시기 바랍니다. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기