SQL Serverは今週、今月、本年などの時間内に記録を取得します.

4855 ワード

datediff(week,zy_time,getdate()=0//今週のクエリ
datediff(month,zy_time,getdate()=0//今月のクエリー
今シーズン:select*from table where datediff(qq,C_CALLTIME,getdate()=0前半1-6、後半7-12:select*from table where datepart(mm,C_CALLTIME)/7=datepart(mm,getdate()/7
1.現在のシステム日付、時刻select getdate()
2.dateadd指定した日付に時間を加えた上で、新しいdatetime値を返します.たとえば、日付に2日間select dateadd(day,2,'2004-10-15')--戻ります.2004-10-17 00:00:00.000
3.datediffは、2つの指定された日付にまたがる日付と時間境界数を返します.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)、現在時間=convert(varchar(8)、getdate()、114)
select datename(dw,'2004-10-15')
select本年何週目=datename(week,'2004-10-15')、今日は週数=datename(weekday,'2004-10-15')
関数#カンスウ#
パラメータ/機能
GetDate( )
システムの現在の日付と時刻を返します.
DateDiff (interval,date1,date2)
Intervalで指定したように、date 2とdate 1の2つの日付の差date 2-date 1を返します.
DateAdd (interval,number,date)
intervalで指定した方法でnumberを付けた後の日付
DatePart (interval,date)
戻り日dateでinterval指定部分に対応する整数値
DateName (interval,date)
戻り日dateでinterval指定部分に対応する文字列名
パラメータintervalの設定値は以下の通りです.

略語(Sql Server)
アクセスとASP
説明
Year
Yy
yyyy
年1753~9999
Quarter
Qq
q
シーズン1~4
Month
Mm
m
月1~12
Day of year
Dy
y
一年の日数、一年の何日目か1-366
Day
Dd
d
日、1-31
Weekday
Dw
w
週の日数、週の日付1~7
Week
Wk
ww
週、1年目の何週目0~51
Hour
Hh
h
時0~23
Minute
Mi
n
分0~59
Second
Ss
s
秒0~59
Millisecond
Ms
-
ミリ秒0~999
アクセスと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:56:32')の戻り値は5日間である.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は今週の今月の問題を照会します
 
---     
select datediff(day,'2004-01-01',getdate())
 
--1.       
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
 
--2.      
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
 
select dateadd(wk,datediff(wk,0,getdate()),6)
--3.      
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
 
--4.      
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
 
--5.     
SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
 
--6.        
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
 
--7.       
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
 
--8.       
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
 
--9.       
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
 
--10.         
select DATEADD(wk,
DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)
 
--        
select count(*) from [user]
where datediff(week,create_day-1,getdate())=0
 
--      
select count(*) from [user]
where datediff(week,create_day-1,getdate())=1
 
 
--      
select count(*) from [user]
where datediff(month,create_day,getdate())=0
 
--      
select count(*) from [user]
where datediff(month,create_day,getdate())=1
 
--     ,     
 
--        
select count(*) from [user]
where create_day>=dateadd(day,2-datepart(weekday,getdate()),convert(varchar,getdate(),112))
and create_day=dateadd(day,-5-datepart(weekday,getdate()),convert(varchar,getdate(),112))
and 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)))
and create_day 
 

  
 
 
この文書のソース:https://www.cnblogs.com/jkqnb/p/5812395.html