Ⅰ sql統計天數
SQL統計天數
Create Table T
(
id int,
date datetime,
num int
)
insert into T values(1,'2015-5-2',1)
insert into T values(1,'2015-6-4',2)
insert into T values(1,'2015-6-4',3)
insert into T values(2,'2015-5-2',1)
insert into T values(2,'2015-5-2',2)
insert into T values(2,'2015-10-4',3)
--按id分組,在日期范圍內統計不重復的date
Select id,COUNT(Distinct [Date]) As Cnt
From T
Where [DATE] between '2015-05-01' and '2015-10-01'
Group by id
Ⅱ sql 計算天數
把你這個翻譯成sql就是了,不過貌似應該是
不算今天:有效天數=有效期+生產日期-當前日期-1
select (validdate+makedate-today-1) as vd
from tablename
Ⅲ sql 計算一個月幾天
可以將年月組成一個月的第一天,再與下個月第一天比較差異天數
declare
@ym
varchar(6)
--年月
select
datediff(day,
cast(@ym+
'01'
as
datetime),dateadd(month,1,cast(@ym+
'01'
as
datetime))
)
Ⅳ 怎麼利用SQL語句計算某年某月有多少天
用SQL語句吧。先比較一下select max(date) from tablewhere date between "yyyy-mm-dd" and "yyyy-mm-dd"先把上個月的最大值拿出來,然後再用當前的值跟它比較。其實就是統計當前資料庫中的最新插入數據的日期。select top 1 from tableorde by data desc這樣就把資料庫中的日期欄位按降序,排出來,而top1會把最頂上,也就是最大的值拿出來。拿出來了,就可以算了。用最新的那個日期減去上個月的。如果值等於月份天數。就說明夠一個月了。再按照你自己的算錢的方法來算吧!
Ⅳ sql中該如何算成倆個時間之間的天數
解決方案:
使用兩個內聯視圖求WARD和ALLEN的HIREDATE(聘用日期)。然後使用DAYS 函數從一個HIREDATE中減去另一個HIREDATE:
select days(ward_hd) - days(allen_hd)
from (
select hiredate as ward_hd
from emp
where ename = 'WARD'
) x,
select hiredate as allen_hd
from emp
where ename = 'ALLEN'
) y
Oracle和PostgreSQL
使用兩個內聯視圖求WARD和ALLEN的HIREDATE(聘用日期)。然後從一個日期中減去另一個日期:
select ward_hd - allen_hd
from (
select hiredate as ward_hd
from emp
where ename = 'WARD'
) x,
(
select hiredate as allen_hd
from emp
where ename = 'ALLEN'
) y
Ⅵ sql語句中可以查詢兩個日期之間的天數么
select datediff('2009-1-1', '2008-1-1');
用datediff函數,第一個參數是截止時間,第二個參數是起始時間
不好意思,剛才的是mysql,剛看了下sql的文檔發現有點區別- -,sql的話,用下面的形式:
DATEDIFF ( datepart , startdate , enddate )
所以你要求2個日期之間間隔的天數,這樣寫:
datediff( dd, '2008/1/1', '2009/1/2' )
這里的dd表示計算天數差
Ⅶ sql 計算一段時期內的天數
沒看懂你的意思,求兩個日期時間差:
mysql:可以使用
selectdatediff('2017-6-25','2016-6-28')fromal;
oracle:可以使用
selectdate1-date2fromal
求得其中的天數差值。
Ⅷ 利用SQL語句如何獲得兩個日期之間相差的天數
用sysdate假設結束日期欄位是end_date
添加這個判斷條件:
where to_char("end_date",'YYYY') = to_char(sysdate,'YYYY') 判斷年相同
and to_char("end_date",'MM') = to_char(sysdate,'MM') 判斷月相同
and to_char("end_date",'dd') - to_char(sysdate,'dd') = 15 判斷日相同
或者:
where to_char("end_date",'YYYY-MM-DD') - to_char(sysdate,'YYYY-MM-DD')=15
(8)sql的計算天數擴展閱讀:
注意事項
DATEDIFF返回跨兩個指定日期的日期和時間邊界數。
語法:DATEDIFF ( datepart , startdate , enddate )
參數:datepart
是規定了應在日期的哪一部分計算差額的參數。下表列出了 Microsoft® SQL Server™ 識別的日期部分和縮寫。
startdate是返回datetime或smalldatetime值或日期格式字元串的表達式。 因為smalldatetime只精確到分鍾,所以當用smalldatetime值時,秒和毫秒總是 0。
如果只指定年份的最後兩位數字,則小於或等於"兩位數年份截止期"配置選項的值的最後兩位數字的數字所在世紀與截止年所在世紀相同。大於該選項的值的最後兩位數字的數字所在世紀為截止年所在世紀的前一個世紀。例如,如果 two digit year cutoff 為 2049(默認),則 49 被解釋為 2049,2050 被解釋為 1950。為避免模糊,請使用四位數的年份。
有關時間值指定的更多信息,請參見時間格式。有關日期指定的更多信息,請參見 datetime 和 smalldatetime。
enddate是計算的終止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字元串的表達式。
返回類型:integer
注釋:startdate 是從 enddate 減去。如果 startdate 比 enddate 晚,返回負值。當結果超出整數值范圍,DATEDIFF 產生錯誤。對於毫秒,最大數是 24 天 20 小時 31 分鍾零 23.647 秒。對於秒,最大數是 68 年。